static List <gsGuia_BuscarDetalleResult> GuiaVenta_ObtenerDetalle(gsOV_BuscarCabeceraResult objOrdenVentaCab_R, gsOV_BuscarDetalleResult[] objOrdenVentaDet, int idEmpresa, int codigoUsuario) { List <gsGuia_BuscarDetalleResult> lstPedidoDet = new List <gsGuia_BuscarDetalleResult>(); gsGuia_BuscarDetalleResult objProducto; try { foreach (gsOV_BuscarDetalleResult producto in objOrdenVentaDet) { objProducto = new gsGuia_BuscarDetalleResult(); // exec VBG00495 @p1 output,19250,'OV',51646,'10210109009418',NULL, // NULL,NULL,NULL,202,48.0000,0.0000,0.0000,48.0000,0.0000,'Unidad',1.0000,48.0000,'Unidad',48.0000,'Unidad',48.0000,NULL objProducto.ID_Amarre = 0; //Amarre Guia objProducto.Op = 0; objProducto.TablaOrigen = "OV"; objProducto.Linea = producto.ID_Amarre; objProducto.ID_Item = producto.ID_Item; objProducto.ID_ItemAnexo = producto.ID_ItemAnexo; objProducto.ID_CCosto = producto.ID_CCosto; objProducto.ID_UnidadGestion = producto.ID_UnidadGestion; objProducto.ID_UnidadProyecto = producto.ID_UnidadProyecto; objProducto.Item_ID = producto.Item_ID; objProducto.CantidadBruta = producto.Cantidad; objProducto.Bultos = 0; objProducto.Tara = 0; objProducto.Cantidad = producto.Cantidad; objProducto.Ajuste = 0; objProducto.ID_UnidadInv = producto.ID_UnidadInv; objProducto.FactorUnidadInv = producto.FactorUnidadInv; objProducto.CantidadUnidadInv = producto.CantidadUnidadInv; // Consultar como se calcula realmente objProducto.ID_UnidadDoc = producto.ID_UnidadDoc; objProducto.CantidadUnidadDoc = producto.CantidadUnidadDoc; // Consultar como se calcula realmente objProducto.ID_UnidadControl = producto.ID_UnidadDoc; objProducto.CantidadUnidadControl = producto.CantidadUnidadDoc; objProducto.Observaciones = producto.Observaciones; objProducto.Estado = (int)producto.Estado; lstPedidoDet.Add(objProducto); } return(lstPedidoDet); } catch (Exception ex) { throw ex; } }
static gsOV_BuscarCabeceraResult OrdenVenta_ObtenerCabecera(gsOV_BuscarCabeceraResult objOrdenVentaCab_R, string idOrdenVenta, gsOV_BuscarImpuestoResult[] lstImpuestos, ref List <GlosaBE> Impuesto_Obtener_R) { gsOV_BuscarCabeceraResult objOrdenVentaCab; decimal impuesto = 0; try { List <GlosaBE> lstGlosaR = new List <GlosaBE>(); objOrdenVentaCab = new gsOV_BuscarCabeceraResult(); objOrdenVentaCab.ID_Agenda = objOrdenVentaCab_R.ID_Agenda; // lblCodigoCliente.Value; if (!string.IsNullOrEmpty(objOrdenVentaCab_R.NoRegistro)) { objOrdenVentaCab.NoRegistro = objOrdenVentaCab_R.NoRegistro; } else { objOrdenVentaCab.NoRegistro = "0"; } if (idOrdenVenta == "0") { objOrdenVentaCab.FechaDespacho = DateTime.Now.Date; objOrdenVentaCab.FechaEntrega = DateTime.Now.Date; objOrdenVentaCab.FechaVigencia = DateTime.Now.Date; objOrdenVentaCab.FechaEmision = DateTime.Now.Date; } else { objOrdenVentaCab.FechaDespacho = objOrdenVentaCab_R.FechaOrden; objOrdenVentaCab.FechaEntrega = objOrdenVentaCab_R.FechaOrden; objOrdenVentaCab.FechaVigencia = objOrdenVentaCab_R.FechaOrden; objOrdenVentaCab.FechaEmision = objOrdenVentaCab_R.FechaOrden; } // OLD //objOrdenVentaCab.FechaOrden = dpFechaEmision.SelectedDate.Value; objOrdenVentaCab.FechaOrden = (DateTime)objOrdenVentaCab_R.FechaEmision; //objOrdenVentaCab.FechaVencimiento = dpFechaVencimiento.SelectedDate.Value; objOrdenVentaCab.FechaVencimiento = (DateTime)objOrdenVentaCab_R.FechaVencimiento; //objOrdenVentaCab.ID_Envio = int.Parse(cboTipoEnvio.SelectedValue); objOrdenVentaCab.ID_Envio = objOrdenVentaCab_R.ID_Envio; objOrdenVentaCab.ID_AgendaAnexoReferencia = null; //if (cboReferencia.SelectedValue != "-1") // objOrdenVentaCab.ID_AgendaAnexoReferencia = int.Parse(cboReferencia.SelectedValue); //else // objOrdenVentaCab.ID_AgendaAnexoReferencia = null; //objOrdenVentaCab.ID_Vendedor = acbVendedor.Text.Split('-')[0].Trim(); objOrdenVentaCab.ID_Vendedor = objOrdenVentaCab_R.ID_Vendedor; objOrdenVentaCab.ID_Moneda = objOrdenVentaCab_R.ID_Moneda; //-------------------------- Cargar Glosa-------------------------------- //lstGlosa = JsonHelper.JsonDeserialize<List<GlosaBE>>((string)ViewState["lstGlosa"]); lstGlosaR = Cargar_Glosa(); lstGlosaR.Find(x => x.Descripcion == "Neto").Importe = objOrdenVentaCab_R.Neto; lstGlosaR.Find(x => x.Descripcion == "Descuento").Importe = objOrdenVentaCab_R.Dcto; lstGlosaR.Find(x => x.Descripcion == "SubTotal").Importe = objOrdenVentaCab_R.SubTotal; lstGlosaR.Find(x => x.Descripcion == "Total").Importe = objOrdenVentaCab_R.Total; foreach (gsOV_BuscarImpuestoResult objImpuesto in lstImpuestos) { GlosaBE objGlosaBE = new GlosaBE(); objGlosaBE.IdGlosa = objImpuesto.ID_Impuesto; objGlosaBE.Descripcion = objImpuesto.Abreviacion; objGlosaBE.Importe = objImpuesto.Importe; objGlosaBE.BaseImponible = objImpuesto.BaseImponible; lstGlosaR.Add(objGlosaBE); } //grdGlosa.DataSource = lstGlosa.OrderBy(x => x.IdGlosa); //grdGlosa.DataBind(); //ViewState["lstGlosa"] = JsonHelper.JsonSerializer(lstGlosa); //------------------------------------------------------------------- //List<GlosaBE> lstGlosa = JsonHelper.JsonDeserialize<List<GlosaBE>>((string)ViewState["lstGlosa"]); List <GlosaBE> lstGlosa = lstGlosaR; objOrdenVentaCab.Neto = lstGlosa.Find(x => x.Descripcion == "Neto").Importe; objOrdenVentaCab.Dcto = lstGlosa.Find(x => x.Descripcion == "Descuento").Importe; objOrdenVentaCab.SubTotal = lstGlosa.Find(x => x.Descripcion == "SubTotal").Importe; objOrdenVentaCab.Total = lstGlosa.Find(x => x.Descripcion == "Total").Importe; lstGlosa = (lstGlosaR.FindAll(x => x.Descripcion != "Neto" && x.Descripcion != "Descuento" && x.Descripcion != "SubTotal" && x.Descripcion != "Total")); foreach (GlosaBE objGlosaBE in lstGlosa) { impuesto = impuesto + objGlosaBE.Importe; } Impuesto_Obtener_R = Impuesto_Obtener(lstGlosaR); objOrdenVentaCab.Impuestos = Math.Round(impuesto, 4); //objOrdenVentaCab.Observaciones = txtObservacion.Text; objOrdenVentaCab.Observaciones = objOrdenVentaCab_R.Observaciones; //objOrdenVentaCab.Prioridad = cboPrioridad.SelectedIndex; //Verificar objOrdenVentaCab.Prioridad = objOrdenVentaCab_R.Prioridad; objOrdenVentaCab.EntregaParcial = false; //Flag para poder hacer entregas parcialmente objOrdenVentaCab.Estado = 376; //Cuenta Corriente en StandBy objOrdenVentaCab.Id_Pago = objOrdenVentaCab_R.Id_Pago; //if (cboSucursal.SelectedValue != "-1") // objOrdenVentaCab.ID_AgendaAnexo = int.Parse(cboSucursal.SelectedValue); //else // objOrdenVentaCab.ID_AgendaAnexo = null; objOrdenVentaCab.ID_AgendaAnexo = objOrdenVentaCab_R.ID_AgendaAnexo; //objOrdenVentaCab.TEA = decimal.Parse(txtTEA.Text); objOrdenVentaCab.TEA = objOrdenVentaCab_R.TEA; //objOrdenVentaCab.ID_AgendaDireccion = int.Parse(cboFacturacion.SelectedValue); objOrdenVentaCab.ID_AgendaDireccion = objOrdenVentaCab_R.ID_AgendaDireccion; //objOrdenVentaCab.ID_AgendaDireccion2 = int.Parse(cboDespacho.SelectedValue); objOrdenVentaCab.ID_AgendaDireccion2 = objOrdenVentaCab_R.ID_AgendaDireccion2; objOrdenVentaCab.ModoPago = null; //No estoy seguro objOrdenVentaCab.NotasDespacho = null; //objOrdenVentaCab.ID_CondicionCredito = int.Parse(cboTipoCredito.SelectedValue.Split(',')[0]); objOrdenVentaCab.ID_CondicionCredito = objOrdenVentaCab_R.ID_CondicionCredito; //if (string.IsNullOrEmpty(txtOrden.Text)) // objOrdenVentaCab.NroOrdenCliente = null; //else // objOrdenVentaCab.NroOrdenCliente = txtOrden.Text; objOrdenVentaCab.NroOrdenCliente = objOrdenVentaCab_R.NroOrdenCliente; objOrdenVentaCab.ID_NaturalezaGastoIngreso = null; objOrdenVentaCab.ID_AgendaOrigen = null; objOrdenVentaCab.DireccionOrigenSucursal = null; objOrdenVentaCab.DireccionOrigenReferencia = null; objOrdenVentaCab.DireccionOrigenDireccion = null; objOrdenVentaCab.ID_AgendaDestino = null; objOrdenVentaCab.DireccionDestinoSucursal = null; objOrdenVentaCab.DireccionDestinoReferencia = null; objOrdenVentaCab.DireccionDestinoDireccion = null; //objOrdenVentaCab.ID_TipoDespacho = int.Parse(cboOpDespacho.SelectedValue); objOrdenVentaCab.ID_TipoDespacho = objOrdenVentaCab_R.ID_TipoDespacho; //objOrdenVentaCab.ID_TipoPedido = int.Parse(cboOpTipoPedido.SelectedValue); objOrdenVentaCab.ID_TipoPedido = objOrdenVentaCab_R.ID_TipoPedido; //objOrdenVentaCab.ID_DocumentoVenta = int.Parse(cboOpDocVenta.SelectedValue); objOrdenVentaCab.ID_DocumentoVenta = objOrdenVentaCab_R.ID_DocumentoVenta; //objOrdenVentaCab.ID_Almacen = int.Parse(cboAlmacen.SelectedValue); objOrdenVentaCab.ID_Almacen = objOrdenVentaCab_R.ID_Almacen; objOrdenVentaCab.ID_Transportista = null; objOrdenVentaCab.ID_Chofer = null; objOrdenVentaCab.ID_Vehiculo1 = null; objOrdenVentaCab.ID_Vehiculo2 = null; objOrdenVentaCab.ID_Vehiculo3 = null; objOrdenVentaCab.HoraAtencionOpcion1_Desde = 0; objOrdenVentaCab.HoraAtencionOpcion1_Hasta = 0; objOrdenVentaCab.HoraAtencionOpcion2_Desde = 0; objOrdenVentaCab.HoraAtencionOpcion2_Hasta = 0; objOrdenVentaCab.HoraAtencionOpcion3_Desde = 0; objOrdenVentaCab.HoraAtencionOpcion3_Hasta = 0; //if (cboSede.SelectedValue != "-1") // objOrdenVentaCab.ID_Sede = int.Parse(cboSede.SelectedValue); //else // objOrdenVentaCab.ID_Sede = null; objOrdenVentaCab.ID_Sede = objOrdenVentaCab_R.ID_Sede; objOrdenVentaCab.Contacto = null; //if (acbContacto.Entries.Count <= 0) // objOrdenVentaCab.Contacto = null; //else // objOrdenVentaCab.Contacto = acbContacto.Entries[0].Text.Split('-')[0]; //if (acbTransporte.Entries.Count <= 0) //{ // objOrdenVentaCab.ID_Transportista = null; // objOrdenVentaCab.ID_AgendaDestino = null; //} //else //{ // objOrdenVentaCab.ID_Transportista = lblTrans.Text; // objOrdenVentaCab.ID_AgendaDestino = acbTransporte.Entries[0].Text.Split('-')[0]; //} objOrdenVentaCab.ID_Transportista = objOrdenVentaCab_R.ID_Transportista; objOrdenVentaCab.ID_AgendaDestino = objOrdenVentaCab_R.ID_AgendaDestino; return(objOrdenVentaCab); } catch (Exception ex) { throw ex; } }
static List <gsOV_BuscarDetalleResult> OrdenVenta_ObtenerDetalle(gsOV_BuscarCabeceraResult objOrdenVentaCab_R, gsOV_BuscarDetalleResult[] objOrdenVentaDet, int idEmpresa, int codigoUsuario) { ImpuestoWCFClient objImpuestoWCF = new ImpuestoWCFClient(); gsOV_BuscarImpuestoResult[] lstImpuestos = null; List <gsOV_BuscarDetalleResult> lstPedidoDet; List <gsItem_BuscarResult> lstProductos = new List <gsItem_BuscarResult>(); // = (List<gsItem_BuscarResult>)Session["lstProductos"]; //List<gsItem_BuscarResult> lstProductosR = new List<gsItem_BuscarResult>(); gsOV_BuscarDetalleResult objProducto; List <gsImpuesto_ListarPorItemResult> lstImpuestoItem = new List <gsImpuesto_ListarPorItemResult>(); DateTime fecha; try { foreach (gsOV_BuscarDetalleResult objDetalle in objOrdenVentaDet) { gsItem_BuscarResult objItem = new gsItem_BuscarResult(); objItem.Codigo = objDetalle.ID_Item; objItem.Cantidad = Convert.ToInt32(objDetalle.Cantidad); objItem.DctoMax = objDetalle.DctoMax; objItem.Descuento = objDetalle.Dcto; objItem.ID_Moneda = objDetalle.ID_Moneda; objItem.ID_UnidadControl = objDetalle.ID_UnidadDoc; objItem.ID_UnidadInv = objDetalle.ID_UnidadInv; objItem.Importe = objDetalle.Importe; objItem.Item = objDetalle.Item; objItem.Item_ID = objDetalle.Item_ID; objItem.NombreMoneda = objDetalle.NombreMoneda; objItem.Observacion = objDetalle.Observaciones; objItem.Precio = objDetalle.Precio; objItem.PrecioInicial = objDetalle.PrecioMinimo; objItem.Signo = objDetalle.Signo; if (objOrdenVentaCab_R.Aprobacion1) { objItem.Stock = objDetalle.Stock + objDetalle.Cantidad; } else { objItem.Stock = objDetalle.Stock; } objItem.FactorUnidadInv = objDetalle.FactorUnidadInv; objItem.UnidadPresentacion = objDetalle.UnidadPresentacion; objItem.ID_Amarre = objDetalle.ID_Amarre; objItem.Estado = 1; objItem.CostoUnitario = objDetalle.CostoUnitario; lstImpuestoItem.AddRange(objImpuestoWCF.Impuesto_ListarPorItem(idEmpresa, codigoUsuario, objDetalle.ID_Item, DateTime.Now)); //ViewState["fecha"] = objOrdenVentaCab.FechaOrden; fecha = objOrdenVentaCab_R.FechaOrden; lstProductos.Add(objItem); } //Session["lstProductos"] = lstProductos; //Session["lstImpuestos"] = lstImpuestoItem; lstPedidoDet = new List <gsOV_BuscarDetalleResult>(); foreach (gsItem_BuscarResult producto in lstProductos) { objProducto = new gsOV_BuscarDetalleResult(); objProducto.ID_Amarre = producto.ID_Amarre; objProducto.TablaOrigen = "OV"; objProducto.ID_Item = producto.Codigo; objProducto.ID_ItemPedido = null; objProducto.Item_ID = producto.Item_ID; objProducto.Cantidad = producto.Cantidad; objProducto.Precio = producto.Precio; objProducto.Dcto = producto.Descuento; //objProducto.DctoValor = Math.Round(producto.Descuento * producto.Precio / 100, 2); objProducto.DctoValor = Math.Round(((producto.Descuento / 100)) * producto.Precio, 4); objProducto.Importe = producto.Importe; objProducto.ID_ItemAnexo = null; objProducto.ID_CCosto = null; objProducto.ID_UnidadGestion = null; objProducto.ID_UnidadProyecto = null; objProducto.ID_UnidadInv = producto.ID_UnidadInv; objProducto.FactorUnidadInv = producto.FactorUnidadInv; objProducto.CantidadUnidadInv = producto.Cantidad; // Consultar como se calcula realmente objProducto.ID_UnidadDoc = producto.ID_UnidadControl; objProducto.CantidadUnidadDoc = producto.Cantidad; // Consultar como se calcula realmente objProducto.Observaciones = producto.Observacion; objProducto.Estado = (int)producto.Estado; objProducto.Stock = producto.Stock; lstPedidoDet.Add(objProducto); } return(lstPedidoDet); } catch (Exception ex) { throw ex; } }
static gsGuia_BuscarCabeceraResult GuiaVenta_ObtenerCabecera(gsOV_BuscarCabeceraResult objOrdenVentaCab_R, decimal idGuiaVenta) { gsGuia_BuscarCabeceraResult objGuiaVentaCab; try { objGuiaVentaCab = new gsGuia_BuscarCabeceraResult(); objGuiaVentaCab.Op = idGuiaVenta; objGuiaVentaCab.ID_Almacen = objOrdenVentaCab_R.ID_AgendaOrigen.ToString(); objGuiaVentaCab.Fecha = DateTime.Now; objGuiaVentaCab.FechaInicioTraslado = DateTime.Now; objGuiaVentaCab.ID_MotivoTraslado = 1; objGuiaVentaCab.Serie = string.Empty; // Revisar objGuiaVentaCab.Numero = 0; // Revisar objGuiaVentaCab.ID_Agenda = objOrdenVentaCab_R.ID_Agenda; objGuiaVentaCab.ID_Envio = (decimal)objOrdenVentaCab_R.ID_Envio; // 2 objGuiaVentaCab.Observaciones = objOrdenVentaCab_R.Observaciones; objGuiaVentaCab.Transportista = objOrdenVentaCab_R.Transporte; // Revisar objGuiaVentaCab.Chofer = null; objGuiaVentaCab.ID_AgendaAnexo = objOrdenVentaCab_R.ID_AgendaAnexo; objGuiaVentaCab.ID_AlmacenAnexo = (decimal)objOrdenVentaCab_R.ID_Almacen; // ID_AlmacenAnexo objGuiaVentaCab.ID_AgendaDireccion = objOrdenVentaCab_R.ID_AgendaDireccion; objGuiaVentaCab.ID_AgendaDireccion2 = objOrdenVentaCab_R.ID_AgendaDireccion2; objGuiaVentaCab.ID_Transportista = objOrdenVentaCab_R.ID_Transportista; objGuiaVentaCab.ID_Vehiculo = objOrdenVentaCab_R.ID_Vehiculo1; objGuiaVentaCab.ID_Vehiculo2 = objOrdenVentaCab_R.ID_Vehiculo2; objGuiaVentaCab.ID_Vehiculo3 = objOrdenVentaCab_R.ID_Vehiculo3; objGuiaVentaCab.ID_Chofer = objOrdenVentaCab_R.ID_Chofer; objGuiaVentaCab.NotasDespacho = objOrdenVentaCab_R.NotasDespacho; objGuiaVentaCab.ID_CondicionCredito = objOrdenVentaCab_R.ID_CondicionCredito; objGuiaVentaCab.TransportistaRUC = objOrdenVentaCab_R.ID_Transportista; // Revisar objGuiaVentaCab.TransportistaDomicilio = string.Empty; // Revisar objGuiaVentaCab.TransportistaMarca = null; objGuiaVentaCab.TransportistaModelo = null; objGuiaVentaCab.TransportistaPlaca = null; objGuiaVentaCab.TransportistaCertInscripcion = null; objGuiaVentaCab.TransportistaChofer = null; objGuiaVentaCab.TransportistaLicencia = null; objGuiaVentaCab.CompPagoTipo = null; objGuiaVentaCab.CompPagoNro = null; objGuiaVentaCab.CompPagoFechaEmision = DateTime.Now; objGuiaVentaCab.ID_AgendaOrigen = objOrdenVentaCab_R.ID_AgendaOrigen; objGuiaVentaCab.DireccionOrigenSucursal = objOrdenVentaCab_R.ID_Almacen; objGuiaVentaCab.DireccionOrigenReferencia = objOrdenVentaCab_R.DireccionOrigenReferencia; objGuiaVentaCab.DireccionOrigenDireccion = objOrdenVentaCab_R.DireccionOrigenDireccion; objGuiaVentaCab.ID_AgendaDestino = objOrdenVentaCab_R.ID_AgendaDestino; objGuiaVentaCab.DireccionDestinoSucursal = objOrdenVentaCab_R.DireccionDestinoSucursal; objGuiaVentaCab.DireccionDestinoReferencia = objOrdenVentaCab_R.DireccionDestinoReferencia; objGuiaVentaCab.DireccionDestinoDireccion = objOrdenVentaCab_R.DireccionDestinoDireccion; objGuiaVentaCab.HoraAtencionOpcion1_Desde = objOrdenVentaCab_R.HoraAtencionOpcion1_Desde; objGuiaVentaCab.HoraAtencionOpcion1_Hasta = objOrdenVentaCab_R.HoraAtencionOpcion1_Hasta; objGuiaVentaCab.HoraAtencionOpcion2_Desde = objOrdenVentaCab_R.HoraAtencionOpcion2_Desde; objGuiaVentaCab.HoraAtencionOpcion2_Hasta = objOrdenVentaCab_R.HoraAtencionOpcion2_Hasta; objGuiaVentaCab.HoraAtencionOpcion3_Desde = objOrdenVentaCab_R.HoraAtencionOpcion3_Desde; objGuiaVentaCab.HoraAtencionOpcion3_Hasta = objOrdenVentaCab_R.HoraAtencionOpcion3_Hasta; return(objGuiaVentaCab); } catch (Exception ex) { throw ex; } }
public decimal OrdenVenta_Registrar(int idEmpresa, int codigoUsuario, gsOV_BuscarCabeceraResult objOrdenVentaCabBE, List <gsOV_BuscarDetalleResult> lstProductos, List <GlosaBE> lstImpuestos, decimal?idOperacion, decimal limiteCredito, List <gsPedidos_FechasLetrasSelectResult> ListaFechas) { using (dmIntranetDataContext dci = new dmIntranetDataContext(GS.configuration.Init.GetValue(Constant.sistema, Constant.key, "genesys"))) { dmGenesysDataContext dcg = new dmGenesysDataContext(string.Format(GS.configuration.Init.GetValue(Constant.sistema, Constant.key, dci.Empresa.SingleOrDefault(x => x.idEmpresa == idEmpresa).baseDatos), "usrGEN" + (10000 + codigoUsuario).ToString().Substring(1, 4))); VBG00004Result objEmpresa; try { objEmpresa = dcg.VBG00004().Single(); using (TransactionScope scope = new TransactionScope()) { //Desaorueba para que se pueda editar if (idOperacion != null && dcg.OV.ToList().Find(x => x.Op == idOperacion).Aprobacion1&& objOrdenVentaCabBE.Id_Pago != 2 && (limiteCredito >= objOrdenVentaCabBE.Total || !objEmpresa.EvaluaLimCredito)) { dcg.VBG01076("OV", idOperacion, 1, "1"); } if (objOrdenVentaCabBE.ID_CondicionCredito == 0 && objOrdenVentaCabBE.Id_Pago == 1) { throw new ArgumentException("No se puede registrar el pedido, se está procesando un pedido con Tipo de Venta: Crédito y Tipo Credito: Contado, presione F5 para refrescar el formulario"); } dcg.VBG00522(ref idOperacion, objOrdenVentaCabBE.ID_Agenda, objOrdenVentaCabBE.NoRegistro, objOrdenVentaCabBE.FechaOrden, objOrdenVentaCabBE.FechaDespacho, objOrdenVentaCabBE.FechaEntrega, objOrdenVentaCabBE.FechaVigencia, objOrdenVentaCabBE.FechaEmision, objOrdenVentaCabBE.FechaVencimiento, objOrdenVentaCabBE.ID_Envio, objOrdenVentaCabBE.ID_AgendaAnexoReferencia, objOrdenVentaCabBE.ID_Vendedor, objOrdenVentaCabBE.ID_Moneda, objOrdenVentaCabBE.Neto, objOrdenVentaCabBE.Dcto, objOrdenVentaCabBE.SubTotal, objOrdenVentaCabBE.Impuestos, objOrdenVentaCabBE.Total, objOrdenVentaCabBE.Observaciones, objOrdenVentaCabBE.Prioridad, objOrdenVentaCabBE.EntregaParcial, objOrdenVentaCabBE.Estado, objOrdenVentaCabBE.Id_Pago, objOrdenVentaCabBE.ID_AgendaAnexo, objOrdenVentaCabBE.TEA, objOrdenVentaCabBE.ID_AgendaDireccion, objOrdenVentaCabBE.ID_AgendaDireccion2, objOrdenVentaCabBE.ModoPago, objOrdenVentaCabBE.NotasDespacho, objOrdenVentaCabBE.ID_CondicionCredito, objOrdenVentaCabBE.NroOrdenCliente, objOrdenVentaCabBE.ID_NaturalezaGastoIngreso, objOrdenVentaCabBE.ID_AgendaOrigen, objOrdenVentaCabBE.DireccionOrigenSucursal, objOrdenVentaCabBE.DireccionOrigenReferencia, objOrdenVentaCabBE.DireccionOrigenDireccion, objOrdenVentaCabBE.ID_AgendaDestino, objOrdenVentaCabBE.DireccionDestinoSucursal, objOrdenVentaCabBE.DireccionDestinoReferencia, objOrdenVentaCabBE.DireccionDestinoDireccion, objOrdenVentaCabBE.ID_TipoDespacho, objOrdenVentaCabBE.ID_TipoPedido, objOrdenVentaCabBE.ID_DocumentoVenta, objOrdenVentaCabBE.ID_Almacen, objOrdenVentaCabBE.ID_Transportista, objOrdenVentaCabBE.ID_Chofer, objOrdenVentaCabBE.ID_Vehiculo1, objOrdenVentaCabBE.ID_Vehiculo2, objOrdenVentaCabBE.ID_Vehiculo3, objOrdenVentaCabBE.HoraAtencionOpcion1_Desde, objOrdenVentaCabBE.HoraAtencionOpcion1_Hasta, objOrdenVentaCabBE.HoraAtencionOpcion2_Desde, objOrdenVentaCabBE.HoraAtencionOpcion2_Hasta, objOrdenVentaCabBE.HoraAtencionOpcion3_Desde, objOrdenVentaCabBE.HoraAtencionOpcion3_Hasta, objOrdenVentaCabBE.ID_Sede, objOrdenVentaCabBE.Contacto); if (idOperacion == null) { throw new ArgumentException("No se pudo registrar el pedido, revisar los campos obligatorios."); } dcg.VBG00523(idOperacion); foreach (gsOV_BuscarDetalleResult objProducto in lstProductos) { decimal?idAmarre = null; if (objProducto.ID_Amarre > 0) { idAmarre = objProducto.ID_Amarre; } if (objProducto.Estado != 0) { dcg.VBG00525(ref idAmarre, idOperacion, objProducto.TablaOrigen, objProducto.Linea, objProducto.ID_Item, objProducto.ID_ItemPedido, objProducto.Item_ID, objProducto.Cantidad, objProducto.Precio, objProducto.Dcto, objProducto.DctoValor, objProducto.Importe, objProducto.ID_ItemAnexo, objProducto.ID_CCosto, objProducto.ID_UnidadGestion, objProducto.ID_UnidadProyecto, objProducto.ID_UnidadInv, objProducto.FactorUnidadInv, objProducto.CantidadUnidadInv, objProducto.ID_UnidadDoc, objProducto.CantidadUnidadDoc, objProducto.Observaciones); } else { if (objProducto.ID_Amarre > 0) { dcg.VBG00526(idAmarre); } } } foreach (GlosaBE objImpuesto in lstImpuestos) { dcg.VBG00524(idOperacion, objImpuesto.IdGlosa, objImpuesto.BaseImponible, objImpuesto.Importe); } dcg.VBG04091(idOperacion); if (limiteCredito >= objOrdenVentaCabBE.Total || !objEmpresa.EvaluaLimCredito) { //Aprobar el pedido if (objOrdenVentaCabBE.Id_Pago != 2) { dcg.VBG01076("OV", idOperacion, 1, "1"); } string moneda = null; decimal?total = null; bool? ok = false; if (objOrdenVentaCabBE.NoRegistro == "0" || objOrdenVentaCabBE.NoRegistro == null) { dcg.VBG00045(idOperacion, ref moneda, ref total, ref ok, null); //Seleccionar impresora VBG00038Result objImpresora = dcg.VBG00038(52).ToList()[0]; //Actualizar impresora string nombreImpresora = null; decimal?idDocumento = null; string nombreDocumento = null; string serieLetra = null; decimal?serieNumero = null; decimal?numero = null; int? lenLetrasSerie = null; int? lenNumeroSerie = null; int? lenNumero = null; decimal?cantidad = null; string archivoRpt = null; decimal?largo = null; decimal?ancho = null; dcg.VBG00037(objImpresora.ID_Impresora, ref nombreImpresora, ref idDocumento, ref nombreDocumento, ref serieLetra, ref serieNumero, ref numero, ref lenLetrasSerie, ref lenNumeroSerie, ref lenNumero, ref cantidad, ref archivoRpt, ref largo, ref ancho); decimal?idImpresora = objImpresora.ID_Impresora; dcg.VBG00036(ref idImpresora, nombreImpresora, idDocumento, serieLetra, serieNumero, numero + 1, lenLetrasSerie, lenNumeroSerie, lenNumero, cantidad - 1); dcg.VBG00040(4, idOperacion, Math.Round((Math.Pow(10, Convert.ToDouble(lenNumeroSerie)) + Convert.ToDouble(serieNumero)), 0).ToString().Substring(1, Convert.ToInt32(lenNumeroSerie)), numero + 1); } //if (lstProductos.FindAll(x => x.Stock - x.Cantidad < 0 && x.Estado == 1 && x.Item_ID != KardexFlete).Count > 0 && objOrdenVentaCabBE.Id_Pago != 2) //{ // dcg.VBG01076("OV", idOperacion, 1, "1"); //} //--------------Actualizar Fecha Letras dcg.gsProcesoLetras_EliminarTotal((int)idOperacion, codigoUsuario); gsProcesoLetras_RegistrarResult objProceso = new gsProcesoLetras_RegistrarResult(); gsProcesoLetras_Registrar_OLDResult objProcesoOLD = new gsProcesoLetras_Registrar_OLDResult(); if (ListaFechas != null) { if (ListaFechas.Count() > 0) { int ID_PROCESO = 0; int ID_PROCESO_OLD = 0; objProceso = dcg.gsProcesoLetras_Registrar(0, codigoUsuario).Single(); objProcesoOLD = dcg.gsProcesoLetras_Registrar_OLD(0, codigoUsuario).Single(); ID_PROCESO = (int)objProceso.Column1; ID_PROCESO_OLD = (int)objProcesoOLD.Column1; dcg.gsProcesoLetrasDetalle_Registrar(ID_PROCESO, (int)idOperacion, 0); dcg.gsProcesoLetrasDetalle_Registrar_OLD(ID_PROCESO_OLD, (int)idOperacion, 0); foreach (gsPedidos_FechasLetrasSelectResult objFecha in ListaFechas.OrderBy(x => x.Fecha)) { dcg.gsPedidos_FechasLetrasInsert(ID_PROCESO_OLD, objFecha.Fecha, codigoUsuario); dcg.gsFactura_FechasLetrasInsert(ID_PROCESO, objFecha.Fecha, 0, codigoUsuario); } } } //------------------------------------------------------- } dcg.SubmitChanges(); scope.Complete(); dcg.Connection.Close(); return((decimal)idOperacion); } } catch (Exception ex) { dci.Excepcion_Registrar(ex.Message, ex.TargetSite.Name); dci.SubmitChanges(); throw new ArgumentException("No se pudo registrar el pedido en la base de datos."); } finally { dcg.Connection.Close(); } } }
static void Pedido_Cargar(string idOrdenVenta, int idEmpresa, int codigoUsuario) { OrdenVentaWCFClient objOrdenVentaWCF = new OrdenVentaWCFClient();; gsOV_BuscarCabeceraResult objOrdenVentaCab; List <GlosaBE> lstGlosa = new List <GlosaBE>(); ImpuestoWCFClient objImpuestoWCF = new ImpuestoWCFClient(); gsOV_BuscarImpuestoResult[] lstImpuestos = null; List <gsImpuesto_ListarPorItemResult> lstImpuestoItem = new List <gsImpuesto_ListarPorItemResult>(); gsOV_BuscarDetalleResult[] objOrdenVentaDet = null; List <gsItem_BuscarResult> lstProductos = new List <gsItem_BuscarResult>(); bool? bloqueado = false; string mensajeBloqueo = null; AgendaWCFClient objAgendaWCFClient; AgendaWCF.VBG01134Result objAgendaCliente; decimal? lineaCredito = null; DateTime?fechaVecimiento = null; string strLETRAS = ""; decimal? TC = 0; try { objAgendaWCFClient = new AgendaWCFClient(); objAgendaCliente = new AgendaWCF.VBG01134Result(); objOrdenVentaCab = objOrdenVentaWCF.OrdenVenta_Buscar(idEmpresa, codigoUsuario, int.Parse(idOrdenVenta), ref objOrdenVentaDet, ref lstImpuestos, ref bloqueado, ref mensajeBloqueo); objAgendaCliente = objAgendaWCFClient.Agenda_BuscarCliente(idEmpresa, codigoUsuario, objOrdenVentaCab.ID_Agenda, ref lineaCredito, ref fechaVecimiento, ref TC); List <GlosaBE> Impuesto_Obtener_R = new List <GlosaBE>(); gsPedidos_FechasLetrasSelectResult[] lstFechas = objOrdenVentaWCF.PedidoLetras_Detalle(idEmpresa, codigoUsuario, 0, int.Parse(idOrdenVenta)); strLETRAS = PedidosFechas_Letras(lstFechas.ToList(), (DateTime)objOrdenVentaCab.FechaEmision); //----------------------------------------------------------- gsOV_BuscarCabeceraResult cabecera = OrdenVenta_ObtenerCabecera(objOrdenVentaCab, idOrdenVenta, lstImpuestos, ref Impuesto_Obtener_R); gsOV_BuscarDetalleResult[] detalle = OrdenVenta_ObtenerDetalle(objOrdenVentaCab, objOrdenVentaDet, idEmpresa, codigoUsuario).ToArray(); int KardexFlete = 0; List <gsOV_BuscarDetalleResult> kardex = new List <gsOV_BuscarDetalleResult>(); gsOV_BuscarDetalleResult objetoFlete = new gsOV_BuscarDetalleResult(); kardex = detalle.ToList().FindAll(x => x.Item.Contains("Flete") && x.Estado == 1).ToList(); if (kardex.Count > 0) { KardexFlete = Convert.ToInt32(kardex[0].Item_ID); //----------------------------------------------------------- if (KardexFlete > 0) { objetoFlete = detalle.ToList().Find(x => x.Item_ID == KardexFlete && x.Estado == 1); } } // ---------------------------------------------------------- objOrdenVentaWCF.OrdenVenta_Registrar(idEmpresa, 1, cabecera, detalle, Impuesto_Obtener_R.ToArray(), decimal.Parse(idOrdenVenta), (decimal)lineaCredito, (DateTime)fechaVecimiento, lstFechas, strLETRAS, KardexFlete, objetoFlete); //objOrdenVentaWCF.OrdenVenta_Registrar(codEmpresa, codUsuario, cabecera, detalle, impuesto, idPedido, LineaCredito, // dtFechaVencimiento, fechas, PlanLetras, KardexFlete, objetoFlete); //string pedido = "Realizado."; } catch (Exception ex) { throw new ArgumentException(ex.Message, ex.TargetSite.Name + "No se pudo registrar el pedido en la base de datos."); } }