public csOP_CALENDARIO_NUMERICO( string Estado, string Origen, string PautaId, OrdenadoCabDTO Cabecera,List<OrdenadoDetDTO> Detalle, List<OrdenadoSKUDTO> SKUS , EspacioContDTO Espacio ) { _PautaId = PautaId ; _Origen = Origen ; _Estado = Estado ; _oCabecera = Cabecera; _oDetalle = Detalle ; _oSKUS = SKUS ; _Espacio = Espacio ; }
public csOP_PNT_SALIDA( string Estado, string Origen, string PautaId, OrdenadoCabDTO Cabecera,List<OrdenadoDetDTO> Detalle, List<OrdenadoSKUDTO> SKUS , EspacioContDTO Espacio,string nomArchivo ) { _PautaId = PautaId ; _Origen = Origen ; _Estado = Estado ; _oCabecera = Cabecera; _oDetalle = Detalle ; _oSKUS = SKUS ; _Espacio = Espacio ; }
//Constructor public csOP_Helper(string Estado, string Origen, string PautaId, OrdenadoCabDTO Cabecera, List<OrdenadoDetDTO> Detalles, List<OrdenadoSKUDTO> SKUS, EspacioContDTO Espacio, string filename) { _Estado = Estado; _Origen = Origen; _PautaId = PautaId; _Cabecera = Cabecera; _Detalle = Detalles; _SKUS = SKUS; _Espacio = Espacio; Imprimir(Espacio.FormatoOP, filename); ArmarCabecera(Espacio.FormatoOP, filename); ArmarDetalle(Espacio.FormatoOP, filename); }
public static void Update(OrdenadoCabDTO ordenado, List<OrdenadoDetDTO> lineas) { OrdenadoSKUDTO sku; using (SqlTransaction tran = dao.IniciarTransaccion()) { try { dao.Update(ordenado, ordenado.RecId, tran); //Elimino toda las lineas del ordenado y las re-creo. daoDetalle.Delete( string.Format("PautaId = '{0}'", ordenado.PautaId), tran); foreach (OrdenadoDetDTO linea in lineas) { linea.RecId = 0; linea.DatareaId = ordenado.DatareaId; linea.PautaId = ordenado.PautaId; daoDetalle.Create(linea, tran); } //Elimino toda las lineas del ordenado y las re-creo. daoSKU.Delete( string.Format("PautaId = '{0}'", ordenado.PautaId), tran); var dtSKU = BuildAllSKU(lineas); foreach (System.Data.DataRow dr in dtSKU.Rows) { sku = new OrdenadoSKUDTO(); sku.RecId = 0; sku.DatareaId = ordenado.DatareaId; sku.PautaId = ordenado.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); } dao.CommitTransaccion(tran); } catch (Exception) { dao.RollbackTransaccion(tran); throw; } } }
public static List<OrdenadoSKUDTO> ReadAllSKUs(OrdenadoCabDTO ordenado) { return daoSKU.ReadAll(string.Format("PautaId = '{0}'", ordenado.PautaId)); }
public static List<OrdenadoDetDTO> ReadAllLineas(OrdenadoCabDTO ordenado) { return daoDetalle.ReadAll(string.Format("PautaId = '{0}'", ordenado.PautaId)); }
//(int id) public static void Delete(OrdenadoCabDTO ordenado) { using (SqlTransaction tran = dao.IniciarTransaccion()) { try { //Elimino toda las lineas del ordenado detalle daoDetalle.Delete( string.Format("PautaId = '{0}'", ordenado.PautaId), tran); //Elimino toda las lineas del ordenado sku daoSKU.Delete( string.Format("PautaId = '{0}'", ordenado.PautaId), tran); //eliminio ordenado. dao.Delete(ordenado.RecId, tran); dao.CommitTransaccion(tran); } catch (Exception) { dao.RollbackTransaccion(tran); throw; } } }
public static void Create(OrdenadoCabDTO ordenado, List<OrdenadoDetDTO> lineas) { OrdenadoSKUDTO sku; using (SqlTransaction tran = dao.IniciarTransaccion()) { try { ordenado.PautaId = SaveNextPautaId(tran).ToString(); ordenado = dao.Create(ordenado, tran); foreach (OrdenadoDetDTO linea in lineas) { linea.RecId = 0; linea.DatareaId = ordenado.DatareaId; linea.PautaId = ordenado.PautaId; daoDetalle.Create(linea, tran); } var dtSKU = BuildAllSKU(lineas); foreach (System.Data.DataRow dr in dtSKU.Rows) { sku = new OrdenadoSKUDTO(); sku.RecId = 0; sku.DatareaId = ordenado.DatareaId; sku.PautaId = ordenado.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); } dao.CommitTransaccion(tran); } catch (Exception) { dao.RollbackTransaccion(tran); throw; } } }
public static void CierreOrdenado(Estimado estimado, EstimadoVersion estimadoVer, OrdenadoCabDTO ordenadoCab) { using (SqlTransaction tran = dao.IniciarTransaccion()) { try { Create(estimado, tran); Create(estimadoVer, tran); daoOrdenadoCab.Update(ordenadoCab, ordenadoCab.RecId, tran); dao.CommitTransaccion(tran); } catch (Exception) { dao.RollbackTransaccion(tran); throw; } } }
protected void btnSave_Click(object sender, EventArgs e) { gv.Selection.UnselectAll(); try { decimal duracionTot = 0; OrdenadoCabDTO ordenado = OrdenadoCab; ordenado.IdentifFrecuencia = Convert.ToString(ucIdentifFrecuencia.SelectedValue); ordenado.HoraInicio = FormsHelper.ConvertToTimeSpan(teHoraInicio.DateTime); ordenado.HoraFin = FormsHelper.ConvertToTimeSpan(teHoraFin.DateTime); ordenado.IdentifIntervalo = Convert.ToString(ucIdentifIntervalo.SelectedValue); //Sumatoria de duracion en registros de la tabla OrdenadoDet. { Lineas.ForEach(x => { duracionTot += (x.Duracion != null) ? x.Duracion.Value : 0; }); ordenado.DuracionTot = duracionTot; } //Cantidad de registros tabla OrdenadoDet cuyo campo IdentifAviso <> “” ordenado.CantSalidas = Lineas.FindAll(x => (x.IdentifAviso != null && x.IdentifAviso != string.Empty)).Count; if (ordenado.CantSalidas!=0) { if (ordenado.RecId == 0) { //Es nuevo... ordenado.PautaId = Business.Ordenados.GetNextPautaId().ToString(); if (ordenado.IdentifIntervalo == "") ordenado.IdentifIntervalo = null; Ordenados.Create(ordenado, Lineas); } else { //Es modificacion... if (Lineas.Count > 0) { if (Lineas[0].Salida > 0) { Labelx.Text = string.Empty; lblErrorLineas.Text = Labelx.Text; if (teHoraInicio.Text == Lineas[0].Hora.ToString().Substring(0,5) && teHoraFin.Text == Lineas[0].Hora.ToString().Substring(0, 5)) { Labelx.Text = string.Empty; lblErrorLineas.Text = Labelx.Text; } else { if(Convert.ToDateTime(teHoraInicio.Text) > (Convert.ToDateTime(teHoraFin.Text))) { Labelx.Text = "Hora de inicio < Hora de Fin. \r\n"; } Labelx.Text += " La hora de inicio/ fin no se corresponde con registros previamente grabados. NO SE HA MODIFICADO LA CABECERA"; lblErrorLineas.Text = Labelx.Text; return; } } else { Labelx.Text = string.Empty; lblErrorLineas.Text = Labelx.Text; } } else { //No hay lineas preexistentes } if (ordenado.IdentifIntervalo == "") { ordenado.IdentifIntervalo = null; } Ordenados.Update(ordenado, Lineas); } OrdenadoCab = ordenado; //Re-Calculo todos los Costos. Business.Ordenados.CalcularCosto(OrdenadoCab, Costos, Lineas, ((Accendo)this.Master).Usuario.UserName); ReCargarControles(OrdenadoCab); } else if (ordenado.CantSalidas == 0) { throw new Exception("Debe Insertar lineas en Detalle para poder Guardar."); } lblErrorLineas.Text = "Se Grabo correctamente"; Labelx.Text = lblErrorLineas.Text; } catch (Exception ex) { lblErrorLineas.Text = ex.Message; } }
private void RecargarDiaHora() { EspacioContDTO espacio = GetEspacioContenido(); OrdenadoCabDTO ordenado = Business.Ordenados.Read(Convert.ToString(ucIdentifEspacio.SelectedValue), deAnoMes.Date.Year, deAnoMes.Date.Month); CostosDTO costos = Business.Ordenados.FindCosto(Convert.ToString(ucIdentifEspacio.SelectedValue), deAnoMes.Date.Year, deAnoMes.Date.Month); if (ordenado != null) { //GenerarLineas(teHoraInicio.DateTime, teHoraFin.DateTime); OrdenadoCab = ordenado; Lineas = Ordenados.ReadAllLineas(ordenado); Costos = costos; //RefreshHomeGrid(gvHome); RefreshAbmGrid(gv); /// si el ordenado esta cerrado oculto paneles de edicion. if (OrdenadoCab.UsuCierre != "" && OrdenadoCab.UsuCierre != null) { ASPxPageControl2.Visible = false; mnuDetalle.Visible = false; } else { ASPxPageControl2.Visible = true; mnuDetalle.Visible = true; } DateTime date = new DateTime(); date = Convert.ToDateTime(deAnoMes.Date); deFechaDesdeOrigenCopiar.Date = new DateTime(date.Year, date.Month, 1); deFechaHastaOrigenCopiar.Date = new DateTime(date.Year, date.Month, 1).AddMonths(1).AddDays(-1); deFechaDesdeReemplazar.Date = new DateTime(date.Year, date.Month, 1); deFechaHastaReemplazar.Date = new DateTime(date.Year, date.Month, 1).AddMonths(1).AddDays(-1); if (espacio.HoraInicio != null) deHoraDesdeOrigenReemplazar.DateTime = FormsHelper.ConvertToDateTime(espacio.HoraInicio.Value); else deHoraDesdeOrigenReemplazar.DateTime = ordenado.VigDesde.Date; if (espacio.HoraFin != null) deHoraHastaOrigenReemplazar.DateTime = FormsHelper.ConvertToDateTime(espacio.HoraFin.Value); else if(ordenado.HoraFin != null) deHoraHastaOrigenReemplazar.DateTime = FormsHelper.ConvertToDateTime(ordenado.HoraFin); else deHoraHastaOrigenReemplazar.DateTime = ordenado.VigHasta.Date.AddHours(23.9999);//origen deFechaDesdeDestinoCopiar.Date = deFechaDesdeOrigenCopiar.Date; deFechaHastaOrigenCopiar.Date = deFechaHastaOrigenCopiar.Date; } else { if (costos != null) { Costos = costos; //Cargo controles. spPautaID.Number = Business.Ordenados.GetNextPautaId(); if (ucIdentifFrecuencia.SelectedValue == null) ucIdentifFrecuencia.SelectedValue = espacio.IdentifFrecuencia; if (ucIdentifIntervalo.SelectedValue == null) ucIdentifIntervalo.SelectedValue = espacio.IdentifIntervalo; if (espacio.HoraInicio.HasValue) { teHoraInicio.DateTime = FormsHelper.ConvertToDateTime(espacio.HoraInicio.Value); teHoraInicioInsertar.DateTime = teHoraInicio.DateTime; } if (espacio.HoraFin.HasValue) { teHoraFin.DateTime = FormsHelper.ConvertToDateTime(espacio.HoraFin.Value); teHoraFinInsertar.DateTime = teHoraFin.DateTime; } litCambiarPauta.Text = string.Format("Espacio: {0} | Período: {1}", ucIdentifEspacio.SelectedText, deAnoMes.Date.ToString("yyyy-MM")); //Actualizo controles. ucFrecuenciaChanged(); ASPxPageControl1.Visible = true; trPauta.Visible = true; trFind.Visible = false; //Inicializo Fechas origen para copia deFechaDesdeOrigenCopiar.Date = costos.VigDesde; deFechaHastaOrigenCopiar.Date = costos.VigHasta; deFechaDesdeReemplazar.Date = costos.VigDesde; deFechaHastaReemplazar.Date = costos.VigHasta; //Inicializo Fechas origen para copia DateTime date = new DateTime(); date = Convert.ToDateTime(deAnoMes.Date); deFechaDesdeOrigenCopiar.Date = new DateTime(date.Year, date.Month, 1); deFechaHastaOrigenCopiar.Date = new DateTime(date.Year, date.Month, 1).AddMonths(1).AddDays(-1); deFechaDesdeReemplazar.Date = new DateTime(date.Year, date.Month, 1); deFechaHastaReemplazar.Date = new DateTime(date.Year, date.Month, 1).AddMonths(1).AddDays(-1); //inicializo horas origen if (espacio.HoraInicio != null) deHoraDesdeOrigenReemplazar.DateTime = FormsHelper.ConvertToDateTime(espacio.HoraInicio.Value); else deHoraDesdeOrigenReemplazar.DateTime = costos.VigDesde.Date; if (espacio.HoraFin != null) deHoraHastaOrigenReemplazar.DateTime = FormsHelper.ConvertToDateTime(espacio.HoraFin.Value); else if (ordenado != null) if(ordenado.HoraFin != null) deHoraHastaOrigenReemplazar.DateTime = FormsHelper.ConvertToDateTime(ordenado.HoraFin); //fecha inicio de destino deFechaDesdeDestinoCopiar.Date = costos.VigDesde; //destino ordenado = new OrdenadoCabDTO(); ordenado.AnoMes = Convert.ToInt32(deAnoMes.Date.Year.ToString() + deAnoMes.Date.Month.ToString("00")); ordenado.CantSalidas = 0; //Cantidad de salidas total ordenado.Costo = 0; //Costo Total de la Pauta ordenado.CostoOp = 0; //Costo de la Pauta para la Orden de Publicidad ordenado.CostoOpUni = 0; //Costo de la Pauta para la Orden de Publicidad por unidad (segundos, página) ordenado.CostoUni = 0; //Costo Total por unidad (segundos, página) ordenado.DatareaId = 0; //Area de Trabajo ordenado.DuracionTot = 0; //Total Duración o Cantidad ordenado.FecCierre = null; //Fecha del cierre ordenado.FecCosto = DateTime.Now; //Fecha en qué se calculo el costo por última vez ordenado.HoraInicio = FormsHelper.ConvertToTimeSpan(teHoraInicio.DateTime); //Hora de Inicio ordenado.HoraFin = FormsHelper.ConvertToTimeSpan(teHoraFin.DateTime); //Hora de Finalizacion ordenado.IdentifEspacio = Convert.ToString(ucIdentifEspacio.SelectedValue); // Espacio de Contenido ordenado.IdentifFrecuencia = Convert.ToString(ucIdentifFrecuencia.SelectedValue); // Frecuencia ordenado.IdentifIntervalo = Convert.ToString(ucIdentifIntervalo.SelectedValue); // Intervalo ordenado.PautaId = Convert.ToString(spPautaID.Number); // Pauta ordenado.RecId = 0; // Registro # ordenado.UsuCierre = ""; //Usuario que cerró ordenado.UsuCosto = costos.Confirmado; //Usuario qué calculo el costo ordenado.VersionCosto = costos.Version.Value; //Versión del registro ordenado.VigDesde = costos.VigDesde; //Fecha desde la cual está vigente el Costo ordenado.VigHasta = costos.VigHasta; //Fecha hasta la cual estará vigente el Costo OrdenadoCab = ordenado; RefreshHomeGrid(gvHome); string msg = string.Empty; if (!ValidarFranjaHoraria(ref msg)) lblErrorLineas.Text = msg; msg = string.Empty; if (!ValidarFrecuencia(ref msg)) lblErrorLineas.Text = msg; msg = string.Empty; if (!ValidarIntervalo(ref msg)) lblErrorLineas.Text = msg; } else { lblValidaAñoMes.Text = "No existen costos Confirmados para este Espacio – Vigencia."; ASPxPageControl1.Visible = true; trPauta.Visible = false; trFind.Visible = true; } } }
private void ReCargarControles(OrdenadoCabDTO ordenado) { EspacioContDTO espacio = GetEspacioContenido(); lblErrorLineas.Text = string.Empty; Labelx.Text = string.Empty; //Controles de la pauta. spPautaID.Number = Convert.ToInt32(ordenado.PautaId); ucIdentifFrecuencia.SelectedValue = ordenado.IdentifFrecuencia; ucIdentifIntervalo.SelectedValue = ordenado.IdentifIntervalo; if (FormsHelper.ConvertToDateTime(ordenado.HoraInicio) != Convert.ToDateTime("00:00:00")) teHoraInicio.DateTime = FormsHelper.ConvertToDateTime(ordenado.HoraInicio); teHoraInicioInsertar.DateTime = teHoraInicio.DateTime; if (FormsHelper.ConvertToDateTime(ordenado.HoraFin) != Convert.ToDateTime("00:00:00")) teHoraFin.DateTime = FormsHelper.ConvertToDateTime(ordenado.HoraFin); teHoraFinInsertar.DateTime = teHoraFin.DateTime; //Controles de solo lectura. spVersionCosto.Value = ordenado.VersionCosto; txUsuCosto.Text = ordenado.UsuCosto; deFecCosto.Date = ordenado.FecCosto; deFecCosto.Value = ordenado.FecCosto; if(ordenado.FecCierre > Convert.ToDateTime("01/01/1900")) { txUsuCierre.Text = ordenado.UsuCierre; deFecCierre.Value = ordenado.FecCierre; } else { txUsuCierre.Text = ""; deFecCierre.Value = ""; ordenado.UsuCierre = ""; ordenado.FecCierre = null; } spCantSalidas.Value = ordenado.CantSalidas; litCambiarPauta.Text = string.Format("Espacio: {0} | Período: {1}", ucIdentifEspacio.SelectedText, deAnoMes.Date.ToString("yyyy-MM")); //Actualizo controles. ucFrecuenciaChanged(); ASPxPageControl1.Visible = true; trPauta.Visible = true; trFind.Visible = false; //Solo se pueden modificar ordenados NO cerrados. btnSave.Enabled = (ordenado.FecCierre == null); //Inicializo Fechas... deHoraDesdeOrigenReemplazar.DateTime = FormsHelper.ConvertToDateTime(ordenado.HoraInicio); deHoraHastaOrigenReemplazar.DateTime = FormsHelper.ConvertToDateTime(ordenado.HoraFin); DateTime date = new DateTime(); date = Convert.ToDateTime(deAnoMes.Date); deFechaDesdeDestinoCopiar.Date = new DateTime(date.Year, date.Month, 1); deFechaDesdeOrigenCopiar.Date = new DateTime(date.Year, date.Month, 1); deFechaHastaOrigenCopiar.Date = new DateTime(date.Year, date.Month, 1).AddMonths(1).AddDays(-1); deFechaHastaDestinoCopiar.Date = new DateTime(date.Year, date.Month, 1).AddMonths(1).AddDays(-1); deFechaDesdeReemplazar.Date = new DateTime(date.Year, date.Month, 1); deFechaHastaReemplazar.Date = new DateTime(date.Year, date.Month, 1).AddMonths(1).AddDays(-1); }
private void CargarOrdenado() { lblValidaAñoMes.Text = string.Empty; lblErrorHome.Text = string.Empty; ordenado = Business.Ordenados.Read(Convert.ToString(ucIdentifEspacio.SelectedValue), deAnoMes.Date.Year, deAnoMes.Date.Month); ASPxPageControl1.Visible = true; trPauta.Visible = true; trFind.Visible = false; EspacioContDTO espacio = GetEspacioContenido(); if (ordenado != null) ReCargarControles(ordenado); RecargarDiaHora(); }
private void Back() { ucIdentifEspacio.ComboBox.SelectedIndex = -1; txMedio.Text = string.Empty; deAnoMes.Date = DateTime.Now; trPauta.Visible = false; trFind.Visible = true; Lineas = null; OrdenadoCab = null; Costos = null; }
public static void CalcularCosto(OrdenadoCabDTO ordenadoCAB, CostosDTO costoCab, List<OrdenadoDetDTO> lineas, string usuario) { decimal costo = 0; decimal costoAcum = 0; //Lockeo la seccion para que otro thread no me descontrole los calculos. lock (typeof(Ordenado)) { using (SqlTransaction tran = dao.IniciarTransaccion()) { try { //La recargo para asegurarme de tener la version mas reciente... ordenadoCAB = dao.Read(string.Format("PautaId='{0}'", ordenadoCAB.PautaId)); if(ordenadoCAB == null) throw new Exception(""); if (costoCab == null) throw new Exception("No hay costos confirmados para realizar el costeo de la Pauta: " + ordenadoCAB.PautaId.ToString()); if (ordenadoCAB.UsuCierre != "" && ordenadoCAB.UsuCierre != null) throw new Exception("El ordenado se encuentra cerrado"); //Inicializo en '0' los registros de trabajo. dao.MoverCeros(ordenadoCAB.PautaId, tran); daoDetalle.MoverCeros(ordenadoCAB.PautaId, tran); daoSKU.MoverCeros(ordenadoCAB.PautaId, tran); //• Seleccionar la Tabla CostoProveedorVersion var costosProveedorVersion = Costos.ReadAllProveedorVersiones(ordenadoCAB.IdentifEspacio, costoCab.VigDesde, costoCab.VigHasta, costoCab.Version.Value); //Por cada registro seleccionado: foreach (var costoProveedorVersion in costosProveedorVersion) { var tipoCambioValor = Monedas.GetTipoCambioValor(costoProveedorVersion.IdentifMon); //• Calcular Tipo de cambio y moneda var costoCur = costoProveedorVersion.Costo * tipoCambioValor; //• Calcular Tipo de cambio y moneda var costoGros = costoCur * costoProveedorVersion.GrossingUp; //• Calcular Impuestos //• Actualizar Tabla DET var ordenadoDetalles = daoDetalle.ReadAll(string.Format("PautaId='{0}'", ordenadoCAB.PautaId)); foreach (var ordenadoDET in ordenadoDetalles) { if (costoProveedorVersion.TipoCosto == "FIJO_MENSUAL") if (ordenadoCAB.DuracionTot > 0) if (ordenadoDET.Duracion.Value > 0) costo = (costoGros / ordenadoCAB.DuracionTot) * ordenadoDET.Duracion.Value; else costo = 0; else costo = costoGros; else if (costoProveedorVersion.TipoCosto == "SEGUNDO_FIJO") costo = costoGros * ordenadoDET.Duracion.Value; else if (costoProveedorVersion.TipoCosto == "SALIDA" || costoProveedorVersion.TipoCosto == "UNIDAD_PAUTADA") costo = costoGros; else throw new Exception("Proveedor.TipoCosto Desconocido."); ordenadoDET.Costo += costo; if (ordenadoDET.Duracion ==null) ordenadoDET.CostoUni = ordenadoDET.Costo / 1; else if (ordenadoDET.Duracion == 0) ordenadoDET.CostoUni = ordenadoDET.Costo / 1; else if (ordenadoDET.Duracion!=0) ordenadoDET.CostoUni = ordenadoDET.Costo / ordenadoDET.Duracion.Value; if (costoProveedorVersion.IncluidoOP) { ordenadoDET.CostoOp += costo; if(ordenadoDET.Duracion ==null) ordenadoDET.CostoOpUni = ordenadoDET.CostoOp / 1; ///fek hay q validar que se pueda usar valor 1. else if (ordenadoDET.Duracion == 0) ordenadoDET.CostoOpUni = ordenadoDET.CostoOp / 1; ///fek hay q validar que se pueda usar valor 1. else if (ordenadoDET.Duracion!=0) ordenadoDET.CostoOpUni = ordenadoDET.CostoOp / ordenadoDET.Duracion.Value; } costoAcum += costo; //o Actualizar la Tabla DET daoDetalle.Update(ordenadoDET, ordenadoDET.RecId, tran); } //• Actualizar Tabla SKU foreach (var ordenadoDET in ordenadoDetalles) { //o Seleccionar la Tabla SKU con SKU.PautaID = PautaId enviado y SKU.IdentifAviso = DET.IdentifAviso var ordenadoSKUs = daoSKU.ReadAll(string.Format("PautaId='{0}' AND IdentifAviso='{1}'", ordenadoCAB.PautaId, ordenadoDET.IdentifAviso)); //o Seleccionar la Tabla Avisos con IdentifAviso... >> var aviso = Avisos.Read(string.Format("IdentifAviso='{0}'", ordenadoDET.IdentifAviso)); var productosPiezaArte = PiezasArte.ReadAllProductos(aviso.IdentifPieza); foreach (var ordenadoSKU in ordenadoSKUs) { //o >> ... y luego la tabla PiezasArteSKU con IdentifPieza, TipoProd = “Primario” y IdentifSKU = SKU.IdentifSKU var productoPiezaArte = productosPiezaArte.Find(x => x.TipoProd.Trim().ToUpper() == "PRIMARIO" && x.IdentifSKU == ordenadoSKU.IdentifSKU); ordenadoSKU.Costo += (productoPiezaArte.Coeficiente.Value * costo); if (ordenadoSKU.Duracion == null) ordenadoSKU.CostoUni = (ordenadoSKU.Costo / 1); else if(ordenadoSKU.Duracion == 0) ordenadoSKU.CostoUni = (ordenadoSKU.Costo / 1); else if (ordenadoSKU.Duracion!=0) ordenadoSKU.CostoUni = (ordenadoSKU.Costo / ordenadoSKU.Duracion.Value); //• Si campo CostoProveedorVersion.IncluidoOP = “Si” if (costoProveedorVersion.IncluidoOP) { ordenadoSKU.CostoOp += (productoPiezaArte.Coeficiente.Value * costo); if (ordenadoSKU.Duracion == null) ordenadoSKU.CostoOpUni = (ordenadoSKU.CostoOp / 1); else if( ordenadoSKU.Duracion ==0) ordenadoSKU.CostoOpUni = (ordenadoSKU.CostoOp / 1); else if (ordenadoSKU.Duracion!= 0) ordenadoSKU.CostoOpUni = (ordenadoSKU.CostoOp / ordenadoSKU.Duracion.Value); } //o Actualizar Tabla SKU daoSKU.Update(ordenadoSKU, ordenadoSKU.RecId, tran); } } ordenadoCAB.Costo = costoAcum; if (ordenadoCAB.DuracionTot == 0) ordenadoCAB.CostoUni = ordenadoCAB.Costo / 1; ///fek hay q validar que se pueda usar valor 1. else if (ordenadoCAB.DuracionTot == 0) ordenadoCAB.CostoUni = ordenadoCAB.Costo / 1; ///fek hay q validar que se pueda usar valor 1. else if (ordenadoCAB.DuracionTot != 0) ordenadoCAB.CostoUni = ordenadoCAB.Costo / ordenadoCAB.DuracionTot; if (costoProveedorVersion.IncluidoOP) { ordenadoCAB.CostoOp = ordenadoCAB.Costo; if (ordenadoCAB.DuracionTot == 0) ordenadoCAB.CostoOpUni = ordenadoCAB.CostoOp / 1; ///fek hay q validar que se pueda usar valor 1. else if (ordenadoCAB.DuracionTot == 0) ordenadoCAB.CostoOpUni = ordenadoCAB.CostoOp / 1; else if (ordenadoCAB.DuracionTot!=0) ordenadoCAB.CostoOpUni = ordenadoCAB.CostoOp / ordenadoCAB.DuracionTot; } ordenadoCAB.VersionCosto = costoCab.Version.Value; ordenadoCAB.VigDesde = costoCab.VigDesde; ordenadoCAB.VigHasta = costoCab.VigHasta; ordenadoCAB.FecCosto = DateTime.Now; ordenadoCAB.UsuCosto = usuario; dao.Update(ordenadoCAB, ordenadoCAB.RecId, tran); } dao.CommitTransaccion(tran); } catch (Exception ex) { dao.RollbackTransaccion(tran); throw new Exception("Error al Calcular Costo", ex); } } } }
public EstimadoCabDTO(OrdenadoCabDTO ordenadoCab) { DTOHelper.FillObjectByObject(ordenadoCab, this); FecCierre = ordenadoCab.FecCierre.Value; }