예제 #1
0
        public IUnidadVenta AddUnidadVenta()
        {
            UnidadVenta unidadVenta = new UnidadVenta();

            unidadesVenta.Add(unidadVenta);
            return((IUnidadVenta)unidadVenta);
        }
예제 #2
0
        public List <UnidadVenta> LlenarUnidadesVentaCorporativo(string clienteID, string localidadOrigenID, string localidadDestinoID)
        {
            IAdministrarGuias oAdmGuia = AdministrarGuiasFactory.GetAdministrarGuias();

            oAdmGuia.ClienteCorp.ClienteID = Utiles.Validaciones.obtieneEntero(clienteID);
            oAdmGuia.ClienteCorpRemitente.DomicilioGuia.Localidad.LocalidadID    = Utiles.Validaciones.obtieneEntero(localidadOrigenID);
            oAdmGuia.ClienteCorpDestinatario.DomicilioGuia.Localidad.LocalidadID = Utiles.Validaciones.obtieneEntero(localidadDestinoID);
            DsUnidadVentaTEntregaProductoServicio dsProd = oAdmGuia.GetUVentaServTEntregaModOrigenCotizadasByClienteLocalidadDataSet();

            if (dsProd == null)
            {
                return(null);
            }


            List <UnidadVenta> unidades = new List <UnidadVenta>();

            foreach (DsUnidadVentaTEntregaProductoServicio.DatosRow dr in dsProd.Datos.Rows)
            {
                UnidadVenta m = new UnidadVenta();
                m.UnidadVentaDescrip = dr.UnidadVentaDescrip;
                m.UnidadVentaID      = dr.UnidadVentaID;

                if ((from c in unidades
                     where c.UnidadVentaID == dr.UnidadVentaID
                     select c).FirstOrDefault() == null)
                {
                    unidades.Add(m);
                }
            }

            return(unidades);
        }
        public bool GuardarPasaje()
        {
            try {
                using (SqlConnection conexion = new SqlConnection())
                {
                    SqlTransaction transaccion = null;
                    conexion.ConnectionString = Config.ConnectionString;
                    try
                    {
                        conexion.Open();
                        transaccion = conexion.BeginTransaction();
                        UnidadVenta uventa = new UnidadVenta();
                        uventa.UnidadVentaID = UnidadVentaIDNueva;
                        uventa.Consultar();

                        // Actualizar la tabla GuiaFacturaDetalle con la nueva unidad de venta
                        Config.Conexion.EjecutarSinResultados(transaccion, "GuiaFacturaDetalleUPD", Utiles.BaseDatos.IntToSql(this.GuiaID), Utiles.BaseDatos.IntToSql(this.UnidadVentaIDNueva), Utiles.BaseDatos.IntToSql(uventa.Producto.ProductoID), Utiles.BaseDatos.IntToSql(uventa.TiempoEntrega.TiempoEntregaID));

                        // Actualizar la tabla GuiaFacturaDetalleServicio, borrar el servicio FPD, que tenia la unidad de venta anterior
                        Config.Conexion.EjecutarSinResultados(transaccion, "GuiaFacturaDetalleServicioDEL", Utiles.BaseDatos.IntToSql(this.GuiaID), Utiles.BaseDatos.IntToSql((int)NegociosSisPackInterface.SisPack.Servicio.FletePagoDestino));

                        // Actualizar la tabla GuiaFacturaDetalleServicio, insertar los nuevos servicios que tiene la nueva unidad de venta
                        if (uventa.ServiciosCol.getCount() > 0)
                        {
                            GuiaFacturaDetalleServicio guiaServicio = null;
                            IServicio servicio = null;
                            for (int i = 0; i < uventa.ServiciosCol.getCount(); i++)
                            {
                                servicio                = uventa.ServiciosCol.GetServicio(i);
                                guiaServicio            = new GuiaFacturaDetalleServicio();
                                guiaServicio.GuiaID     = GuiaID;
                                guiaServicio.ServicioID = servicio.ServicioID;
                                guiaServicio.Guardar(transaccion);
                            }
                        }

                        /* Dejar log del pasaje
                         *  1- Para los remitos, al momento de la conformación se emitirá un remito en vez de una factura. */
                        Config.Conexion.EjecutarSinResultados(transaccion, "GuiaPasajeACtaCteINS", Utiles.BaseDatos.IntToSql(this.GuiaID), Utiles.BaseDatos.IntToSql(this.FacturaID), this.ClienteIDNuevo, Utiles.BaseDatos.IntToSql(this.clienteIDAnt), Utiles.BaseDatos.StrToSql(this.PersonaSolicitante), Utiles.BaseDatos.StrToSql(this.Observaciones), this.UsuarioID, Utiles.BaseDatos.IntToSql((int)NegociosSisPackInterface.SisPack.TipoOperacionGuiaPasajeID.Pasaje), Utiles.BaseDatos.IntToSql(AgenciaID), Impreso);

                        transaccion.Commit();
                        return(true);
                    }
                    catch (Exception ex)
                    {
                        transaccion.Rollback();
                        throw ex;
                    }
                }
            }
            catch (Exception)
            {
                return(false);
            }
        }
		public bool Guardar(System.Data.SqlClient.SqlTransaction transaccion)
		{
			if (this.GuiaFacturaDetalleID == 0)
			{
                UnidadVenta uventa = new UnidadVenta();
                uventa.UnidadVentaID = this.UnidadVentaID;
                /* VSA: Desarrollo modificaciones en la emisión de la guía - registrar servicios, producto y tiempo de entrega. */
                uventa.Consultar();

                this.GuiaFacturaDetalleID = Convert.ToInt32(Config.Conexion.EjecutarResultadoUnico(transaccion,"GuiaFacturaDetalleINS", 
					this.GuiaID,Utiles.BaseDatos.IntToSql((int)this.TipoBultoID),Utiles.BaseDatos.IntToSql(this.UnidadVentaID),
					Utiles.BaseDatos.DoubleToSql(this.VolumenDetalleTotal), Utiles.BaseDatos.DoubleToSql(this.ValorDeclaradoDetalleTotal),
					Utiles.BaseDatos.IntToSql(this.GuiaDevueltaID),Utiles.BaseDatos.DoubleToSql(this.SeguroTantoPorMil),
					Utiles.BaseDatos.IntToSql(this.CantidadBultos),Utiles.BaseDatos.DoubleToSql(this.PesoDetalleTotal),
					Utiles.BaseDatos.DoubleToSql(this.ContrareembolsoImporteTotal), Utiles.BaseDatos.IntToSql(uventa.Producto.ProductoID), Utiles.BaseDatos.IntToSql(uventa.TiempoEntrega.TiempoEntregaID)));
				
					// pregunto si la condicion de pago de la guia es contado y 
					// si la unidad de venta no tiene servicio flete pago en destino
					// si es asi, entonces, se le decrementa el crédito a la agencia
					bool tieneFletePago = uventa.TieneFletePago();	
					
					if (this.EsContado && !tieneFletePago)
					{
						// decremento el crédito de las autorizaciones (si existen)
						DsAutorizacionesCreditoAgencia ds = new DsAutorizacionesCreditoAgencia();
						SqlParameter pAgenciaID = new SqlParameter("@AgenciaID", this.AgenciaOrigenID);
						Config.Conexion.LlenarTypeDataSet(ds.Datos, System.Data.CommandType.StoredProcedure, "AutorizacionAgenciaCreditoSEL", pAgenciaID);   
						
						double importe = 0;
						bool parar = false;
						// recorro cada autorizacion y la decremento
						foreach(DsAutorizacionesCreditoAgencia.DatosRow dr in ds.Datos.Rows)
						{
							importe = Convert.ToDouble(Config.Conexion.EjecutarResultadoUnico(transaccion, "DecrementarCreditoAutorizacionAgenciaUPD", dr.AutorizacionAgenciaID, this.AgenciaOrigenID, importe, this.GuiaID, dr.CreditoActual));
							if (importe < 0)
							{
								parar = true;
								break;
							}
						}
						
						if (!parar)
						{
							// decrementa el crédito de la agencia (usa el saldo de lo que no cubrieron las autorizaciones)
							Config.Conexion.EjecutarSinResultados(transaccion, "DecrementarCreditoAgenciaUPD", this.AgenciaOrigenID, this.GuiaID, importe);
						}
					}

				//VER: si es mejor así: o que la factura guarde todo....VER SI SIEMPRE SERIA NECESARIO GUARDAR LOS DETALLES
				if(conceptosFactu.getCount()>0)
				{
					conceptosFactu.GuiaFacturaDetalleID = this.GuiaFacturaDetalleID;
					conceptosFactu.GuiaID = this.GuiaID;
					conceptosFactu.Guardar(transaccion);
				}

				if(formasPago.getCount()>0)
				{
					formasPago.GuiaFacturaDetalleID = this.GuiaFacturaDetalleID;
					formasPago.GuiaID = this.GuiaID;
					formasPago.Guardar(transaccion);
				}

                if (uventa.ServiciosCol.getCount() > 0)
                {
                    GuiaFacturaDetalleServicio guiaServicio = null;
                    IServicio servicio = null;
                    for(int i = 0; i < uventa.ServiciosCol.getCount(); i++)
                    {
                        servicio = uventa.ServiciosCol.GetServicio(i);
                        guiaServicio = new GuiaFacturaDetalleServicio();
                        guiaServicio.GuiaID = this.GuiaID;
                        guiaServicio.ServicioID = servicio.ServicioID;
                        guiaServicio.Guardar(transaccion);
                    }
                }
			}
			return true;
		}
 public CotizacionClienteUVenta()
 {
     unidadVenta = new UnidadVenta();
     cotizacionClienteUVentaModalidades = new CotizacionClienteUVentaModalidaCol();
 }
예제 #6
0
 public SolicitudCotizacionUVenta()
 {
     unidadVenta = new UnidadVenta();
     this.solicitudCotizacionUVentaModalidades = new SolicitudCotizacionClienteUVentaModalidadCol();
 }
예제 #7
0
        public static IUnidadVenta GetUnidadVenta()
        {
            UnidadVenta unidadVenta = new UnidadVenta();

            return((IUnidadVenta)unidadVenta);
        }