public void AddPart(float Larghezza, float Altezza, float densita, int ricorsione, Color colore)
 {
     parte=new Parte();
     parte.bodySize = new Vector2(Larghezza, Altezza);
     parte.lista_archi = new SortedList<int, Arco>();
     parte.density = densita;
     parte.color = colore;
     parte.ricorsione = ricorsione;
     parte.num_archi = 0;
     vettParti.Add(num_parti, parte);
     num_parti++;
 }
Example #2
0
 public DetalleImagen(int Id)
 {
     InitializeComponent();
     try
     {
         Parte = Negocio.General.GetEntityById<Parte>("Parte", "ParteID", Id);
         if (Parte == null)
             throw new EntityNotFoundException(Id.ToString(), "Parte");
     }
     catch (Exception ex)
     {
         Negocio.Helper.MensajeError(ex.Message, GlobalClass.NombreApp);
     }
 }
Example #3
0
 public DetalleCodigoAlterno(int Id)
 {
     InitializeComponent();
     try
     {
         //Parte = General.GetEntityById<Parte>("Parte", "ParteID", Id);
         Parte = Datos.GetEntity<Parte>(c => c.ParteID == Id && c.Estatus);
         if (Parte == null)
             throw new EntityNotFoundException(Id.ToString(), "Parte");
     }
     catch (Exception ex)
     {
         Util.MensajeError(ex.Message, GlobalClass.NombreApp);
     }
 }
        public int AddLink(int _parte, int link, float posizione, Boolean simmetric)
        {
            if (link > num_parti || _parte > num_parti)
                return 0;

            else
            {
                arco = new Arco();
                parte=vettParti.Values[_parte];
                arco.link = link;
                arco.position = posizione;
                arco.simmetric = simmetric;
                parte.lista_archi.Add(parte.num_archi, arco);
                parte.num_archi++;
                return 1;
            }
        }
Example #5
0
        private void Importar()
        {
            string sColumnasFalt = this.ValidarColumnas();
            if (sColumnasFalt != "")
            {
                UtilLocal.MensajeAdvertencia("El archivo especificado no tiene el formato correcto. Falta especificar las siguientes columnas:\n\n" + sColumnasFalt);
                return;
            }

            this.HabilitarControlesProceso(false);
            this.prgProgreso.Inicializar(this.dgvProceso.Rows.Count, 1);

            foreach (DataGridViewRow oFila in this.dgvProceso.Rows)
            {
                this.prgProgreso.EjecutarPaso(true);

                if (oFila.DefaultCellStyle.ForeColor == Color.Green)
                    continue;

                // Se valida que no se repita el número de parte
                string sNumeroDeParte = Util.Cadena(oFila.Cells["NumeroDeParte"].Value);
                if (Datos.Exists<Parte>(c => c.NumeroParte == sNumeroDeParte && c.Estatus))
                {
                    if (UtilLocal.MensajePregunta(string.Format("El Número de Parte especificado ya existe. Aún así deseas importar el registro: {0} - {1}"
                        , oFila.Cells["NumeroDeParte"].Value, oFila.Cells["Nombre"].Value)) != DialogResult.Yes)
                    {
                        this.PonerErrorFila(oFila, "El número de parte especificado ya existe en la base de datos. Revisar.");
                        continue;
                    }
                }
                // Se obtiene los Ids (Proveedor, Marca, ..)
                string sProveedor = Util.Cadena(oFila.Cells["Proveedor"].Value);
                var oProveedor = Datos.GetEntity<Proveedor>(c => c.NombreProveedor == sProveedor && c.Estatus);
                if (oProveedor == null)
                {
                    this.PonerErrorFila(oFila, "El Proveedor especificado es inválido.");
                    continue;
                }
                string sMarca = Util.Cadena(oFila.Cells["Marca"].Value);
                var oMarca = Datos.GetEntity<MarcaParte>(c => c.NombreMarcaParte == sMarca && c.Estatus);
                if (oMarca == null)
                {
                    this.PonerErrorFila(oFila, "La Marca especificada es inválida.");
                    continue;
                }
                string sLinea = Util.Cadena(oFila.Cells["Linea"].Value);
                var oLinea = Datos.GetEntity<Linea>(c => c.NombreLinea == sLinea && c.Estatus);
                if (oLinea == null)
                {
                    this.PonerErrorFila(oFila, "La Línea especificada es inválida.");
                    continue;
                }
                string sSubsistema = Util.Cadena(oFila.Cells["Subsistema"].Value);
                var oSubsistema = Datos.GetEntity<Subsistema>(c => c.NombreSubsistema == sSubsistema && c.Estatus);
                if (oSubsistema == null)
                {
                    this.PonerErrorFila(oFila, "El Subsistema especificado es inválido.");
                    continue;
                }
                string sUnidadDeMedida = Util.Cadena(oFila.Cells["UnidadDeMedida"].Value);
                var oUnidadDeMedida = Datos.GetEntity<Medida>(c => c.NombreMedida == sUnidadDeMedida && c.Estatus);
                if (oUnidadDeMedida == null)
                {
                    this.PonerErrorFila(oFila, "La Unidad de Medida es inválida.");
                    continue;
                }

                // Se genera el registro de la parte
                var oParte = new Parte()
                {
                    NumeroParte = Util.Cadena(oFila.Cells["NumeroDeParte"].Value),
                    NombreParte = Util.Cadena(oFila.Cells["Nombre"].Value),
                    ProveedorID = oProveedor.ProveedorID,
                    MarcaParteID = oMarca.MarcaParteID,
                    LineaID = oLinea.LineaID,
                    SubsistemaID = oSubsistema.SubsistemaID,
                    MedidaID = oUnidadDeMedida.MedidaID,
                    UnidadEmpaque = Util.Entero(oFila.Cells["UnidadDeEmpaque"].Value),
                    AplicaComision = (Util.Cadena(oFila.Cells["AplicaComision"].Value).ToLower() == PartesImportar.CadenaVerdadero),
                    Etiqueta = (Util.Cadena(oFila.Cells["Etiqueta"].Value).ToLower() == PartesImportar.CadenaVerdadero),
                    Es9500 = true
                };
                // Se genera el registro del precio
                var oPartePrecio = new PartePrecio()
                {
                    Costo = Util.Decimal(oFila.Cells["Costo"].Value),
                    PorcentajeUtilidadUno = Util.Decimal(oFila.Cells["PorUtil1"].Value),
                    PorcentajeUtilidadDos = Util.Decimal(oFila.Cells["PorUtil2"].Value),
                    PorcentajeUtilidadTres = Util.Decimal(oFila.Cells["PorUtil3"].Value),
                    PorcentajeUtilidadCuatro = Util.Decimal(oFila.Cells["PorUtil4"].Value),
                    PorcentajeUtilidadCinco = Util.Decimal(oFila.Cells["PorUtil5"].Value),
                    PrecioUno = Util.Decimal(oFila.Cells["Precio1"].Value),
                    PrecioDos = Util.Decimal(oFila.Cells["Precio2"].Value),
                    PrecioTres = Util.Decimal(oFila.Cells["Precio3"].Value),
                    PrecioCuatro = Util.Decimal(oFila.Cells["Precio4"].Value),
                    PrecioCinco = Util.Decimal(oFila.Cells["Precio5"].Value),
                };
                // Se guardan los datos
                Guardar.Parte(oParte, oPartePrecio);
                // Se colorea la fila
                oFila.ErrorText = "";
                oFila.DefaultCellStyle.ForeColor = Color.Green;
            }

            this.prgProgreso.EjecutarPaso(false);
            this.HabilitarControlesProceso(true);
        }
Example #6
0
 public ReportarParteFaltante(int iParteID)
 {
     InitializeComponent();
     this.oParte = Datos.GetEntity<Parte>(q => q.ParteID == iParteID);
 }
Example #7
0
        public static ResAcc Parte(Parte oParte, PartePrecio oPartePrecio)
        {
            // Se llenan datos predeterminados, si no han sido llenados
            oParte.ParteEstatusID = (oParte.ParteEstatusID > 0 ? oParte.ParteEstatusID : Cat.PartesEstatus.Activo);
            oParte.MedidaID = (oParte.MedidaID > 0 ? oParte.MedidaID : Cat.Medidas.Pieza);
            oParte.UnidadEmpaque = (oParte.UnidadEmpaque > 0 ? oParte.UnidadEmpaque : 1);
            oParte.AplicaComision = (oParte.AplicaComision.HasValue ? oParte.AplicaComision : true);
            oParte.Etiqueta = (oParte.Etiqueta.HasValue ? oParte.Etiqueta : true);

            // Se guarda el registro de la parte
            Datos.Guardar<Parte>(oParte);

            // Se guarda el registro del precio
            if (oPartePrecio != null)
            {
                oPartePrecio.ParteID = oParte.ParteID;
                oPartePrecio.CostoConDescuento = (oPartePrecio.CostoConDescuento.HasValue ? oPartePrecio.CostoConDescuento : oPartePrecio.Costo);
                Datos.Guardar<PartePrecio>(oPartePrecio);
            }

            // Se generan los registros de existencia, uno por cada sucursal
            var oSucursales = Datos.GetListOf<Sucursal>(q => q.Estatus);
            foreach (var oSucursal in oSucursales)
            {
                Datos.Guardar<ParteExistencia>(new ParteExistencia()
                {
                    ParteID = oParte.ParteID,
                    SucursalID = oSucursal.SucursalID,
                    Existencia = 0
                });
            }

            // Se generan los registros para Máximos y Mínimos, uno por cada sucursal
            foreach (var oSucursal in oSucursales)
            {
                // Se buscan los criterios generales predefinidos, para asignarlos
                var oCriterioPred = Datos.GetEntity<ParteMaxMinCriterioPredefinido>(q => q.SucursalID == oSucursal.SucursalID
                    && q.ProveedorID == oParte.ProveedorID && q.MarcaID == oParte.MarcaParteID && q.LineaID == oParte.LineaID);
                //
                Datos.Guardar<ParteMaxMin>(new ParteMaxMin()
                {
                    ParteID = oParte.ParteID,
                    SucursalID = oSucursal.SucursalID,
                    Calcular = (oCriterioPred == null ? null : oCriterioPred.Calcular),
                    VentasGlobales = (oCriterioPred == null ? null : oCriterioPred.VentasGlobales)
                });
            }

            // Se genera el registro de Abc (ParteAbc)
            Datos.Guardar<ParteAbc>(new ParteAbc()
            {
                ParteID = oParte.ParteID,
                AbcDeVentas = "Z"
            });

            return new ResAcc(true);
        }
Example #8
0
        private bool Agregar9500()
        {
            // Se valida la parte de "Partes"
            if (!this.ctlPartes.Validar())
                return false;
            // Se pide el efectivo, si aplica
            if (!this.ctlCobro.CompletarCobro())
                return false;
            // Se valida que exista una Medida genérica, para las nuevas partes
            if (Datos.GetEntity<Medida>(q => q.MedidaID == Cat.Medidas.Pieza && q.Estatus) == null)
            {
                UtilLocal.MensajeAdvertencia("No existe una Medida genérica para asignarle a las partes nuevas. No se puede continuar.");
                return false;
            }

            // Se solicitan la autorizaciones, si se requiere
            int iAutorizoID = 0;
            if (this.ctlPartes.AutorizacionRequeridaPrecio || this.ctlPartes.AutorizacionRequeridaAnticipo)
            {
                string sPermiso = (this.ctlPartes.AutorizacionRequeridaPrecio ? "Autorizaciones.Ventas.9500.PrecioFueraDeRango" :
                    "Autorizaciones.Ventas.9500.NoAnticipo");
                var Res = UtilLocal.ValidarObtenerUsuario(sPermiso, "Autorización");
                iAutorizoID = (Res.Respuesta == null ? 0 : Res.Respuesta.UsuarioID);
            }

            // Se procede a guardar los datos
            DateTime dAhora = DateTime.Now;
            // Se genera la Cotización 9500
            var o9500 = this.ctlPartes.Generar9500();
            o9500.Fecha = dAhora;
            o9500.RealizoUsuarioID = this.ctlCobro.VendodorID;
            if (this.ctlCobro.ComisionistaID > 0)
                o9500.ComisionistaClienteID = this.ctlCobro.ComisionistaID;
            // Se genera el detalle del 9500
            var oParteGanancia = this.ctlPartes.ObtenerParteGanancia(null);
            var o9500Detalle = new List<Cotizacion9500Detalle>();
            foreach (var Parte9500 in this.ctlPartes.Detalle)
            {
                // Si la parte no existe, se agrega
                if (Parte9500.Value.ParteID <= 0)
                {
                    int iFila = UtilLocal.findRowIndex(this.ctlPartes.dgvPartes, "Llave", Parte9500.Key);
                    string sNumeroDeParte = Util.Cadena(this.ctlPartes.dgvPartes["NumeroDeParte", iFila].Value);
                    string sDescripcion = Util.Cadena(this.ctlPartes.dgvPartes["Descripcion", iFila].Value);
                    var oLinea = Datos.GetEntity<Linea>(q => q.LineaID == Parte9500.Value.LineaID && q.Estatus);
                    Parte oParte = new Parte()
                    {
                        NumeroParte = sNumeroDeParte,
                        LineaID = Parte9500.Value.LineaID,
                        MarcaParteID = Parte9500.Value.MarcaParteID,
                        ProveedorID = Parte9500.Value.ProveedorID,
                        NombreParte = sDescripcion,
                        Es9500 = true,
                        SubsistemaID = oLinea.SubsistemaID.Valor()
                    };

                    // Se agregan los precios
                    PartePrecio oPartePrecio = null;
                    if (oParteGanancia != null)
                    {
                        oPartePrecio = new PartePrecio()
                        {
                            Costo = Parte9500.Value.Costo,
                            PorcentajeUtilidadUno = oParteGanancia.PorcentajeDeGanancia1,
                            PorcentajeUtilidadDos = oParteGanancia.PorcentajeDeGanancia2,
                            PorcentajeUtilidadTres = oParteGanancia.PorcentajeDeGanancia3,
                            PorcentajeUtilidadCuatro = oParteGanancia.PorcentajeDeGanancia4,
                            PorcentajeUtilidadCinco = oParteGanancia.PorcentajeDeGanancia5,
                            PrecioUno = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia1),
                            PrecioDos = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia2),
                            PrecioTres = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia3),
                            PrecioCuatro = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia4),
                            PrecioCinco = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia5)
                        };
                    }

                    // Se guarda
                    Guardar.Parte(oParte, oPartePrecio);
                    Parte9500.Value.ParteID = oParte.ParteID;
                }

                // Se agrega la parte al detalle del 9500
                o9500Detalle.Add(Parte9500.Value);
            }

            // Se guardan los datos de 9500
            Guardar.c9500(o9500, o9500Detalle);

            // Se genera la venta con el anticipo
            var oVenta = new Venta()
            {
                ClienteID = o9500.ClienteID,
                RealizoUsuarioID = o9500.RealizoUsuarioID
            };
            var oPrecioAnticipo = Datos.GetEntity<PartePrecio>(c => c.ParteID == Cat.Partes.AnticipoClientes && c.Estatus);
            var oVentaDetalle = new VentaDetalle()
            {
                ParteID = Cat.Partes.AnticipoClientes,
                Cantidad = 1,
                PrecioUnitario = o9500.Anticipo,
                Costo = oPrecioAnticipo.Costo.Valor(),
                CostoConDescuento = (oPrecioAnticipo.CostoConDescuento ?? oPrecioAnticipo.Costo.Valor())
            };
            Guardar.Venta(oVenta, new List<VentaDetalle>() { oVentaDetalle });

            // Se guarda el dato de la venta con el anticipo en el registro de 9500
            o9500.AnticipoVentaID = oVenta.VentaID;
            Datos.Guardar<Cotizacion9500>(o9500);

            // Se guardan las autorizaciones, si hubiera
            if (this.ctlPartes.AutorizacionRequeridaPrecio)
                VentasProc.GenerarAutorizacion(Cat.AutorizacionesProcesos.c9500PrecioFueraDeRango, Cat.Tablas.Tabla9500, o9500.Cotizacion9500ID, iAutorizoID);
            if (this.ctlPartes.AutorizacionRequeridaAnticipo)
                VentasProc.GenerarAutorizacion(Cat.AutorizacionesProcesos.c9500SinAnticipo, Cat.Tablas.Tabla9500, o9500.Cotizacion9500ID, iAutorizoID);

            // Se muestra una notifiación con el resultado
            UtilLocal.MostrarNotificacion("Cotización 9500 guardada correctamente.");

            return true;
        }
Example #9
0
 public void addPart(Parte part)
 {
     parts.Add(part.key, part);
     partCount++;
 }
Example #10
0
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            if (!Validaciones())
                return;

            var caracteristicas = new StringBuilder();

            /* int id;
            if (int.TryParse(cboLinea.SelectedValue.ToString(), out id))
            {
                //Validaciones para las caracteristicas segun la linea
                var lineaId = Util.ConvertirEntero(this.cboLinea.SelectedValue);
                var linea = General.GetEntity<Linea>(l => l.LineaID.Equals(lineaId));
                if (linea != null)
                {
                    if (linea.Alto.Equals(true) && this.txtAlto.Text == "")
                        caracteristicas.Append("Alto, ");
                    if (linea.Diametro.Equals(true) && this.txtDiametro.Text == "")
                        caracteristicas.Append("Diametro, ");
                    if (linea.Largo.Equals(true) && this.txtLargo.Text == "")
                        caracteristicas.Append("Largo, ");
                    if (linea.Dientes.Equals(true) && this.txtDientes.Text == "")
                        caracteristicas.Append("Dientes, ");
                    if (linea.Astrias.Equals(true) && this.txtAstrias.Text == "")
                        caracteristicas.Append("Astrias, ");
                    if (linea.Sistema.Equals(true) && Util.ConvertirEntero(this.cboParteSistema.SelectedValue).Equals(1))
                        caracteristicas.Append("Sistema, ");
                    if (linea.Amperaje.Equals(true) && this.txtAmperes.Text == "")
                        caracteristicas.Append("Amperaje, ");
                    if (linea.Voltaje.Equals(true) && this.txtVoltios.Text == "")
                        caracteristicas.Append("Voltaje, ");
                    if (linea.Watts.Equals(true) && this.txtWatts.Text == "")
                        caracteristicas.Append("Watts, ");
                    if (linea.Ubicacion.Equals(true) && Util.ConvertirEntero(this.cboParteUbicacion.SelectedValue).Equals(1))
                        caracteristicas.Append("Ubicacion, ");
                    if (linea.Terminales.Equals(true) && this.txtTerminales.Text == "")
                        caracteristicas.Append("Terminales, ");
                }
            }
            */

            var mensaje = string.Empty;

            if (string.IsNullOrEmpty(caracteristicas.ToString()))
            {
                mensaje = "¿Está seguro de que la información es correcta?";
            }
            else
            {
                mensaje = string.Format("{0}{1}{2}", "Faltan características por llenar, (", caracteristicas.ToString().Substring(0, caracteristicas.ToString().Length - 2), ") ¿Está seguro de que la información es correcta?");
            }

            var res = Util.MensajePregunta(mensaje, GlobalClass.NombreApp);
            if (res == DialogResult.No)
                return;

            object oMotivoFijoCero = null;
            if (this.VerMaxMinFijoCero())
            {
                oMotivoFijoCero = UtilLocal.ObtenerValor("Indica el motivo por el cuál se especificó un MaxMin de cero:", "", MensajeObtenerValor.Tipo.TextoLargo);
                if (oMotivoFijoCero == null)
                    return;
            }

            try
            {
                SplashScreen.Show(new Splash());
                this.btnGuardar.Enabled = false;
                PartePrecio oPartePrecio;
                if (this.EsNuevo)
                {
                    this.oParte = new Parte();
                    oPartePrecio = new PartePrecio();
                }
                else //Modificación
                {
                    oPartePrecio = Datos.GetEntity<PartePrecio>(c => c.ParteID == this.oParte.ParteID && c.Estatus);
                }

                // Se llenan los datos
                oParte.NumeroParte = txtNumeroParte.Text;
                oParte.NombreParte = txtNombreParte.Text;
                oParte.LineaID = Util.Entero(cboLinea.SelectedValue);
                oParte.MarcaParteID = Util.Entero(cboMarca.SelectedValue);
                oParte.SubsistemaID = Util.Entero(cboSubsistema.SelectedValue);
                oParte.ProveedorID = Util.Entero(cboProveedor.SelectedValue);
                oParte.MedidaID = Util.Entero(cboMedida.SelectedValue);
                oParte.ParteEstatusID = Util.Entero(cboEstatus.SelectedValue);
                oParte.AplicaComision = chkAplicaComision.Checked;

                /* Parte.Alto = Util.ConvertirEntero(txtAlto.Text);
                Parte.Largo = Util.ConvertirEntero(txtLargo.Text);
                Parte.Diametro = Util.ConvertirEntero(txtDiametro.Text);
                Parte.Dientes = Util.ConvertirEntero(txtDientes.Text);
                Parte.Astrias = Util.ConvertirEntero(txtAstrias.Text);
                Parte.Amperes = Util.ConvertirEntero(txtAmperes.Text);
                Parte.Voltios = Util.ConvertirEntero(txtVoltios.Text);
                Parte.Watts = Util.ConvertirEntero(txtWatts.Text);
                Parte.Terminales = Util.ConvertirEntero(txtTerminales.Text);
                Parte.Litros = Util.ConvertirEntero(txtLitros.Text);
                */

                oParte.ParteSistemaID = Util.Entero(cboParteSistema.SelectedValue);
                oParte.ParteUbicacionID = Util.Entero(cboParteUbicacion.SelectedValue);

                // Control de Cascos
                this.oParte.EsCasco = (this.cmbEsCascoPara.SelectedValue != null);
                this.oParte.EsCascoPara = (this.oParte.EsCasco.Valor() ? (int?)Util.Entero(this.cmbEsCascoPara.SelectedValue) : null);
                this.oParte.RequiereCascoDe = (this.cmbRequiereCascoDe.SelectedValue == null ? null : (int?)Util.Entero(this.cmbRequiereCascoDe.SelectedValue));
                this.oParte.RequiereDepositoDe = (this.txtRequiereDepositoDe.Tag == null ? null : (int?)Util.Entero(this.txtRequiereDepositoDe.Tag));

                oParte.Es9500 = chk9500.Checked;
                oParte.EsServicio = chkServicio.Checked;

                // Parte.TipoCilindroID = Util.ConvertirEntero(this.cmbCar01.SelectedValue);
                oParte.TipoGarantiaID = Util.Entero(this.cboTipoGarantia.SelectedValue);
                oParte.Etiqueta = this.chkSiEtiqueta.Checked;
                oParte.SoloUnaEtiqueta = this.chkSoloUna.Checked;

                oParte.CodigoBarra = this.txtCodigoBarra.Text;
                oParte.TiempoReposicion = Util.Decimal(this.txtTiempoReposicion.Text);

                oParte.UnidadEmpaque = Util.Decimal(this.txtUnidadEmpaque.Text);
                oParte.AGranel = this.chkAGranel.Checked;
                oParte.EsPar = this.chkEsPar.Checked;

                // Se llenan los datos del precio
                if (oPartePrecio != null)
                {
                    oPartePrecio.Costo = Util.Decimal(txtCosto.Text);
                    oPartePrecio.PorcentajeUtilidadUno = Util.Decimal(txtPorcentaje1.Text);
                    oPartePrecio.PorcentajeUtilidadDos = Util.Decimal(txtPorcentaje2.Text);
                    oPartePrecio.PorcentajeUtilidadTres = Util.Decimal(txtPorcentaje3.Text);
                    oPartePrecio.PorcentajeUtilidadCuatro = Util.Decimal(txtPorcentaje4.Text);
                    oPartePrecio.PorcentajeUtilidadCinco = Util.Decimal(txtPorcentaje5.Text);
                    oPartePrecio.PrecioUno = Util.Decimal(txtPrecio1.Text);
                    oPartePrecio.PrecioDos = Util.Decimal(txtPrecio2.Text);
                    oPartePrecio.PrecioTres = Util.Decimal(txtPrecio3.Text);
                    oPartePrecio.PrecioCuatro = Util.Decimal(txtPrecio4.Text);
                    oPartePrecio.PrecioCinco = Util.Decimal(txtPrecio5.Text);
                }

                // Se guarda la Parte
                if (this.EsNuevo)
                {
                    Guardar.Parte(this.oParte, oPartePrecio);
                }
                else
                {
                    Datos.Guardar<Parte>(this.oParte);
                    Datos.Guardar<PartePrecio>(oPartePrecio);
                }

                // Se mandan guardar las características
                this.GuardarCaracteristicas();

                // Se guardan las existencias y los datos de máximos y mínimos
                foreach (DataGridViewRow row in dgvExistencias.Rows)
                {
                    var sucursalId = Util.Entero(row.Cells["SucursalID"].Value);
                    var parteExistencia = Datos.GetEntity<ParteExistencia>(p => p.ParteID.Equals(oParte.ParteID) && p.SucursalID.Equals(sucursalId));
                    if (parteExistencia != null)
                    {
                        parteExistencia.SucursalID = sucursalId;
                        parteExistencia.Maximo = Util.Entero(row.Cells["Max"].Value);
                        parteExistencia.Minimo = Util.Entero(row.Cells["Min"].Value);
                        // parteExistencia.UnidadEmpaque = Util.ConvertirEntero(row.Cells["UEmp"].Value);
                        parteExistencia.UsuarioID = GlobalClass.UsuarioGlobal.UsuarioID;
                        parteExistencia.FechaModificacion = DateTime.Now;
                        parteExistencia.Estatus = true;
                        parteExistencia.Actualizar = true;
                        Datos.SaveOrUpdate<ParteExistencia>(parteExistencia);
                    }

                    // Se guardan los datos de MaxMin, si fueron modificados
                    bool bMaxMinFijo = Util.Logico(row.Cells["MaxMinFijo"].Value);
                    if (bMaxMinFijo)
                    {
                        var oParteMaxMin = Datos.GetEntity<ParteMaxMin>(q => q.ParteID == oParte.ParteID && q.SucursalID == sucursalId);
                        oParteMaxMin.Fijo = bMaxMinFijo;
                        oParteMaxMin.Maximo = Util.Entero(row.Cells["Max"].Value);
                        oParteMaxMin.Minimo = Util.Entero(row.Cells["Min"].Value);
                        Datos.Guardar<ParteMaxMin>(oParteMaxMin);

                        // Se verifica si fue max min 0, para guardar histórico
                        if (oMotivoFijoCero != null && oParteMaxMin.Maximo == 0 && oParteMaxMin.Minimo == 0)
                        {
                            var oFijoHist = new ParteMaxMinFijoHistorico()
                            {
                                ParteID = this.oParte.ParteID,
                                SucursalID = sucursalId,
                                Fecha = DateTime.Now,
                                Motivo = Util.Cadena(oMotivoFijoCero)
                            };
                            Datos.Guardar<ParteMaxMinFijoHistorico>(oFijoHist);
                        }
                    }
                }

                // Se verifica el máximo, para guardar como 9500 o no
                this.oParte.Es9500 = AdmonProc.VerGuardar9500(this.oParte.ParteID);

                // Si es nuevo, se carga la parte, para que ya no sea nuevo
                if (this.EsNuevo)
                    this.CargarParte(this.oParte.ParteID);

                SplashScreen.Close();
                this.btnGuardar.Enabled = true;
                new Notificacion("Parte Guardada exitosamente", 2 * 1000).Mostrar(Principal.Instance);
                // this.IniciarActualizarListado();
            }
            catch (Exception ex)
            {
                SplashScreen.Close();
                this.btnGuardar.Enabled = true;
                Util.MensajeError(ex.Message, GlobalClass.NombreApp);
            }
        }
Example #11
0
    public int BuscarParte(int entradaMaxima)
    {
        int  novaColunaSaida = 0, novaLinhaSaida = 0;
        bool continuar = false;
        int  entrada   = 0;
        int  contagem  = 0;

        while (!continuar)
        {
            entrada   = Random.Range(0, entradaMaxima);
            continuar = partes[entrada].Count > 0;
            contagem++;
            if (contagem == 100)
            {
                continuar = true;
                Debug.Log("Entrou em loop infinito 2.");
                Debug.Log(entradaMaxima);
                Debug.Log(entrada);
                Debug.Log(partes[entrada]);
                Debug.Break();
                Application.Quit();
            }
        }
        Parte parte = partes[entrada][Random.Range(0, partes[entrada].Count)];

        string path = System.IO.Path.Combine(Application.streamingAssetsPath, "Desafios/" + parte.GetNome() + ".txt");

        if (Application.platform == RuntimePlatform.Android || Application.platform == RuntimePlatform.WebGLPlayer)
        {
            // Android only use WWW to read file
            WWW readerwww = new WWW(path);
            while (!readerwww.isDone)
            {
            }

            string realPath = Application.persistentDataPath + "/parte";
            System.IO.File.WriteAllBytes(realPath, readerwww.bytes);

            path = realPath;
        }


        //Read the text from directly from the test.txt file
        StreamReader reader = new StreamReader(path);

        char[] buffer = new char[1];

        if (!puroInfinito)
        {
            if (!Menu.instance.MapaHUDMontado())
            {
                Menu.instance.CriarHUD(columns, rows);
            }
            else
            {
                Menu.instance.LimparHUD();
            }
        }
        else
        {
            if (!MenuInfinito.instance.MapaHUDMontado())
            {
                MenuInfinito.instance.CriarHUD(columns, rows);
            }
            else
            {
                MenuInfinito.instance.LimparHUD();
            }
        }

        int  distancia     = 0;
        bool primeiraLinha = true;

        for (int i = alturaSaida; i < alturaSaida + rows; i++)
        {
            for (int j = linhaSaida; j < linhaSaida + matrixes; j++)
            {
                bool mudarColuna = true;
                for (int k = colunaSaida; k < colunaSaida + columns; k++)
                {
                    reader.ReadBlock(buffer, 0, buffer.Length);
                    //buffer[0] = linhas[1 + j + i*matrixes + i][k];
                    AdicionarObjeto(buffer[0], k - distancia, i, j);
                    if (buffer[0] != '0')
                    {
                        //EstabelecerHUD(buffer[0], k - distancia, i, j, true);
                        if (mudarColuna)
                        {
                            novaColunaSaida = k - distancia;
                            mudarColuna     = false;
                        }
                        novaLinhaSaida = j;
                        primeiraLinha  = false;
                    }
                    else if (primeiraLinha && i == alturaSaida && j == linhaSaida)
                    {
                        distancia++;
                    }
                }
                reader.ReadBlock(buffer, 0, buffer.Length);
            }
            reader.ReadBlock(buffer, 0, buffer.Length);
        }

        alturaSaida = alturaSaida + rows;
        colunaSaida = novaColunaSaida;
        linhaSaida  = novaLinhaSaida + 1;
        reader.Close();

        return(parte.GetSaida());
    }
Example #12
0
        public void CargarParte(int iParteID)
        {
            // Se limpia el formulario primero
            this.LimpiarFormulario();

            // Se obtiene la parte correspondiente
            this.oParte = Datos.GetEntity<Parte>(c => c.ParteID == iParteID && c.Estatus);
            if (this.oParte == null)
            {
                UtilLocal.MensajeError("Hubo un error al carcar la Parte especificada.");
                return;
            }
            this.EsNuevo = false;

            // Se empiezan a cargar los datos
            this.txtNumeroParte.Text = oParte.NumeroParte;
            this.txtNombreParte.Text = oParte.NombreParte;
            this.cboProveedor.SelectedValue = oParte.ProveedorID;
            var subsitema = Datos.GetEntity<Subsistema>(s => s.SubsistemaID.Equals(oParte.SubsistemaID));

            this.cboMarca.SelectedValue = oParte.MarcaParteID;
            this.cboLinea.SelectedValue = oParte.LineaID;
            // this.cboSistema.SelectedValue = subsitema.SistemaID;
            this.cboSubsistema.SelectedValue = oParte.SubsistemaID;

            this.cboMedida.SelectedValue = oParte.MedidaID;
            this.cboEstatus.SelectedValue = oParte.ParteEstatusID;

            // Control de Cascos
            if (this.oParte.EsCascoPara.HasValue)
                this.cmbEsCascoPara.SelectedValue = this.oParte.EsCascoPara;
            this.cmbRequiereCascoDe.CargarDatos("ParteID", "NumeroParte", Datos.GetListOf<Parte>(c => c.EsCascoPara == this.oParte.LineaID && c.Estatus));
            if (this.oParte.RequiereCascoDe.HasValue)
                this.cmbRequiereCascoDe.SelectedValue = this.oParte.RequiereCascoDe;
            this.txtRequiereDepositoDe.Tag = this.oParte.RequiereDepositoDe;
            if (this.oParte.RequiereDepositoDe.HasValue)
            {
                var oParteDep = Datos.GetEntity<Parte>(c => c.ParteID == this.oParte.RequiereDepositoDe.Value && c.Estatus);
                this.txtRequiereDepositoDe.Text = oParteDep.NumeroParte;
            }

            this.chkAplicaComision.Checked = Util.Logico(oParte.AplicaComision);
            this.chk9500.Checked = Util.Logico(oParte.Es9500);
            this.chkServicio.Checked = Util.Logico(oParte.EsServicio);

            this.CargaExistencias(oParte.ParteID);
            this.CargaPrecios(oParte.ParteID);

            this.CargarImagenes(oParte.ParteID);
            this.CargarEquivalencias(oParte.ParteID);
            this.CargarAplicaciones(oParte.ParteID);
            this.CargarCodigosAlternos(oParte.ParteID);
            this.CargarComplementarios(oParte.ParteID);
            this.CargarValidaciones(oParte.ParteID);

            /* this.txtAlto.Text = Parte.Alto.ToString().Equals("0") ? string.Empty : Parte.Alto.ToString();
            this.txtLargo.Text = Parte.Largo.ToString().Equals("0") ? string.Empty : Parte.Largo.ToString();
            this.txtDiametro.Text = Parte.Diametro.ToString().Equals("0") ? string.Empty : Parte.Diametro.ToString();
            this.txtDientes.Text = Parte.Dientes.ToString().Equals("0") ? string.Empty : Parte.Dientes.ToString();
            this.txtAstrias.Text = Parte.Astrias.ToString().Equals("0") ? string.Empty : Parte.Astrias.ToString();

            this.txtAmperes.Text = Parte.Amperes.ToString().Equals("0") ? string.Empty : Parte.Amperes.ToString();
            this.txtVoltios.Text = Parte.Voltios.ToString().Equals("0") ? string.Empty : Parte.Voltios.ToString();
            this.txtWatts.Text = Parte.Watts.ToString().Equals("0") ? string.Empty : Parte.Watts.ToString();
            this.txtTerminales.Text = Parte.Terminales.ToString().Equals("0") ? string.Empty : Parte.Terminales.ToString();
            this.txtLitros.Text = Parte.Litros.ToString().Equals("0") ? string.Empty : Parte.Litros.ToString();
            */

            // Se llenan las características
            this.CargarCaracteristicas();
            //

            if (oParte.ParteSistemaID == null)
                this.cboParteSistema.SelectedValue = 1;
            else
                this.cboParteSistema.SelectedValue = oParte.ParteSistemaID;

            if (oParte.ParteUbicacionID == null)
                this.cboParteUbicacion.SelectedValue = 1;
            else
                this.cboParteUbicacion.SelectedValue = oParte.ParteUbicacionID;

            if (oParte.TipoGarantiaID == null)
                this.cboTipoGarantia.SelectedValue = 1;
            else
                this.cboTipoGarantia.SelectedValue = oParte.TipoGarantiaID;

            if (oParte.TipoCilindroID == null)
                this.cboTipoGarantia.SelectedValue = 1;
            else
                this.cboTipoGarantia.SelectedValue = oParte.TipoGarantiaID;

            this.chkSiEtiqueta.Checked = Util.Logico(oParte.Etiqueta);
            this.chkSoloUna.Checked = Util.Logico(oParte.SoloUnaEtiqueta);

            this.dgvEquivalentes.ClearSelection();
            this.dgvAplicaciones.ClearSelection();
            this.dgvExistencias.ClearSelection();
            this.dgvCodigosAlternos.ClearSelection();

            this.dgvEquivalentes.CurrentCell = null;
            this.dgvAplicaciones.CurrentCell = null;
            this.dgvExistencias.CurrentCell = null;
            this.dgvCodigosAlternos.CurrentCell = null;

            // this.btnAgregarAplicacion.Enabled = true;
            // this.btnAgregarEquivalencia.Enabled = true;
            this.btnAgregarImagenes.Enabled = true;

            this.txtABC.Text = Util.Cadena(oParte.CriterioABC);
            this.txtCodigoBarra.Text = Util.Cadena(oParte.CodigoBarra);
            this.txtTiempoReposicion.Text = Util.Cadena(oParte.TiempoReposicion);

            this.txtUnidadEmpaque.Text = oParte.UnidadEmpaque.ToString();
            this.chkAGranel.Checked = oParte.AGranel;
            this.chkEsPar.Checked = oParte.EsPar.Valor();

            // Para mostrar / ocultar etiqueta de no pedidos
            this.lblNoPedidos.Visible = Datos.Exists<ParteCaracteristicaTemporal>(c => c.ParteID == this.oParte.ParteID
                && c.Caracteristica == Cat.CaracTempPartes.NoPedidosPorEquivalentes);

            // Se llenan los datos de las ventas por mes
            this.ctlVentasPorMes.LlenarDatos(iParteID);

            // Para cambiar el color de fondo de algunos grids
            this.dgvExistencias.CambiarColorDeFondo(Color.FromArgb(188, 199, 216));
            this.ctlVentasPorMes.dgvDatos.CambiarColorDeFondo(Color.FromArgb(188, 199, 216));
            this.bGridPartesSel = true;
        }
Example #13
0
        private bool Agregar9500()
        {
            // Se valida la parte de "Partes"
            if (!this.ctlPartes.Validar())
            {
                return(false);
            }
            // Se pide el efectivo, si aplica
            if (!this.ctlCobro.CompletarCobro())
            {
                return(false);
            }
            // Se valida que exista una Medida genérica, para las nuevas partes
            if (Datos.GetEntity <Medida>(q => q.MedidaID == Cat.Medidas.Pieza && q.Estatus) == null)
            {
                UtilLocal.MensajeAdvertencia("No existe una Medida genérica para asignarle a las partes nuevas. No se puede continuar.");
                return(false);
            }

            // Se solicitan la autorizaciones, si se requiere
            int iAutorizoID = 0;

            if (this.ctlPartes.AutorizacionRequeridaPrecio || this.ctlPartes.AutorizacionRequeridaAnticipo)
            {
                string sPermiso = (this.ctlPartes.AutorizacionRequeridaPrecio ? "Autorizaciones.Ventas.9500.PrecioFueraDeRango" :
                                   "Autorizaciones.Ventas.9500.NoAnticipo");
                var Res = UtilLocal.ValidarObtenerUsuario(sPermiso, "Autorización");
                iAutorizoID = (Res.Respuesta == null ? 0 : Res.Respuesta.UsuarioID);
            }

            // Se procede a guardar los datos
            DateTime dAhora = DateTime.Now;
            // Se genera la Cotización 9500
            var o9500 = this.ctlPartes.Generar9500();

            o9500.Fecha            = dAhora;
            o9500.RealizoUsuarioID = this.ctlCobro.VendodorID;
            if (this.ctlCobro.ComisionistaID > 0)
            {
                o9500.ComisionistaClienteID = this.ctlCobro.ComisionistaID;
            }
            // Se genera el detalle del 9500
            var oParteGanancia = this.ctlPartes.ObtenerParteGanancia(null);
            var o9500Detalle   = new List <Cotizacion9500Detalle>();

            foreach (var Parte9500 in this.ctlPartes.Detalle)
            {
                // Si la parte no existe, se agrega
                if (Parte9500.Value.ParteID <= 0)
                {
                    int    iFila          = UtilLocal.findRowIndex(this.ctlPartes.dgvPartes, "Llave", Parte9500.Key);
                    string sNumeroDeParte = Util.Cadena(this.ctlPartes.dgvPartes["NumeroDeParte", iFila].Value);
                    string sDescripcion   = Util.Cadena(this.ctlPartes.dgvPartes["Descripcion", iFila].Value);
                    var    oLinea         = Datos.GetEntity <Linea>(q => q.LineaID == Parte9500.Value.LineaID && q.Estatus);
                    Parte  oParte         = new Parte()
                    {
                        NumeroParte  = sNumeroDeParte,
                        LineaID      = Parte9500.Value.LineaID,
                        MarcaParteID = Parte9500.Value.MarcaParteID,
                        ProveedorID  = Parte9500.Value.ProveedorID,
                        NombreParte  = sDescripcion,
                        Es9500       = true,
                        SubsistemaID = oLinea.SubsistemaID.Valor()
                    };

                    // Se agregan los precios
                    PartePrecio oPartePrecio = null;
                    if (oParteGanancia != null)
                    {
                        oPartePrecio = new PartePrecio()
                        {
                            Costo = Parte9500.Value.Costo,
                            PorcentajeUtilidadUno    = oParteGanancia.PorcentajeDeGanancia1,
                            PorcentajeUtilidadDos    = oParteGanancia.PorcentajeDeGanancia2,
                            PorcentajeUtilidadTres   = oParteGanancia.PorcentajeDeGanancia3,
                            PorcentajeUtilidadCuatro = oParteGanancia.PorcentajeDeGanancia4,
                            PorcentajeUtilidadCinco  = oParteGanancia.PorcentajeDeGanancia5,
                            PrecioUno    = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia1),
                            PrecioDos    = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia2),
                            PrecioTres   = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia3),
                            PrecioCuatro = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia4),
                            PrecioCinco  = UtilTheos.AplicarRedondeo(Parte9500.Value.Costo * oParteGanancia.PorcentajeDeGanancia5)
                        };
                    }

                    // Se guarda
                    Guardar.Parte(oParte, oPartePrecio);
                    Parte9500.Value.ParteID = oParte.ParteID;
                }

                // Se agrega la parte al detalle del 9500
                o9500Detalle.Add(Parte9500.Value);
            }

            // Se guardan los datos de 9500
            Guardar.c9500(o9500, o9500Detalle);

            // Se genera la venta con el anticipo
            var oVenta = new Venta()
            {
                ClienteID        = o9500.ClienteID,
                RealizoUsuarioID = o9500.RealizoUsuarioID
            };
            var oPrecioAnticipo = Datos.GetEntity <PartePrecio>(c => c.ParteID == Cat.Partes.AnticipoClientes && c.Estatus);
            var oVentaDetalle   = new VentaDetalle()
            {
                ParteID           = Cat.Partes.AnticipoClientes,
                Cantidad          = 1,
                PrecioUnitario    = o9500.Anticipo,
                Costo             = oPrecioAnticipo.Costo.Valor(),
                CostoConDescuento = (oPrecioAnticipo.CostoConDescuento ?? oPrecioAnticipo.Costo.Valor())
            };

            Guardar.Venta(oVenta, new List <VentaDetalle>()
            {
                oVentaDetalle
            });

            // Se guarda el dato de la venta con el anticipo en el registro de 9500
            o9500.AnticipoVentaID = oVenta.VentaID;
            Datos.Guardar <Cotizacion9500>(o9500);

            // Se guardan las autorizaciones, si hubiera
            if (this.ctlPartes.AutorizacionRequeridaPrecio)
            {
                VentasProc.GenerarAutorizacion(Cat.AutorizacionesProcesos.c9500PrecioFueraDeRango, Cat.Tablas.Tabla9500, o9500.Cotizacion9500ID, iAutorizoID);
            }
            if (this.ctlPartes.AutorizacionRequeridaAnticipo)
            {
                VentasProc.GenerarAutorizacion(Cat.AutorizacionesProcesos.c9500SinAnticipo, Cat.Tablas.Tabla9500, o9500.Cotizacion9500ID, iAutorizoID);
            }

            // Se muestra una notifiación con el resultado
            UtilLocal.MostrarNotificacion("Cotización 9500 guardada correctamente.");

            return(true);
        }
Example #14
0
        private void btnTimbrar_Click(object sender, EventArgs e)
        {
            //crear un nuevo comprobante CFDI para la version 3.2
            FIGeneradorFacturaElectronica.ComprobanteCFDI32 Comprobante = new ComprobanteCFDI32();
            Comprobante.serie             = "MER";
            Comprobante.folio             = "8223"; //dato no obligatorio
            Comprobante.fecha             = System.DateTime.Now;
            Comprobante.formaDePago       = "Pago en una sola exhibición";
            Comprobante.subTotal          = new FIGeneradorFacturaElectronica.Importe(1100);
            Comprobante.total             = new FIGeneradorFacturaElectronica.Importe(1276);
            Comprobante.tipoDeComprobante = "ingreso";
            Comprobante.Moneda            = "MXN";
            //Comprobante.TipoCambio = "1"; //utilizar en caso de moneda extranjera


            // Campos nuevos en comprobante
            Comprobante.LugarExpedicion = "VERACRUZ";
            Comprobante.NumCtaPago      = "NO IDENTIFICADO";
            Comprobante.metodoDePago    = "NO IDENTIFICADO";

            //Campo nuevo en Emisor
            Comprobante.Emisor.RegimenFiscal.Add("REGIMEN GENERAL DE LEY PERSONAS MORALES");

            //Llenado de datos del emisor
            Comprobante.Emisor.rfc    = RFC;
            Comprobante.Emisor.nombre = "Empresa de prueba";
            Comprobante.Emisor.DomicilioFiscal.calle        = "Av. Paseo de la Reforma";
            Comprobante.Emisor.DomicilioFiscal.noExterior   = "89";
            Comprobante.Emisor.DomicilioFiscal.noInterior   = "103";
            Comprobante.Emisor.DomicilioFiscal.colonia      = "Cuauhtemoc";
            Comprobante.Emisor.DomicilioFiscal.localidad    = "Ciudad de Mexico";
            Comprobante.Emisor.DomicilioFiscal.municipio    = "Cuauhtemoc";
            Comprobante.Emisor.DomicilioFiscal.estado       = "Distrito Federal";
            Comprobante.Emisor.DomicilioFiscal.pais         = "MEXICO";
            Comprobante.Emisor.DomicilioFiscal.codigoPostal = "06500";

            Comprobante.Emisor.ExpedidoEn.calle        = "FRANCISCO PEREZ";
            Comprobante.Emisor.ExpedidoEn.noExterior   = "35";
            Comprobante.Emisor.ExpedidoEn.noInterior   = "1";
            Comprobante.Emisor.ExpedidoEn.colonia      = "RICARDO FLORES MAGON";
            Comprobante.Emisor.ExpedidoEn.localidad    = "VERACRUZ, VER.";
            Comprobante.Emisor.ExpedidoEn.municipio    = "VERACRUZ";
            Comprobante.Emisor.ExpedidoEn.estado       = "Veracruz";
            Comprobante.Emisor.ExpedidoEn.pais         = "México";
            Comprobante.Emisor.ExpedidoEn.codigoPostal = "91900";

            //Llenado de datos del receptor
            Comprobante.Receptor.rfc                  = "FID080111867";
            Comprobante.Receptor.nombre               = "FREIGHTIDEAS S.A DE C.V.";
            Comprobante.Receptor.Domicilio.calle      = "ARIZONA";
            Comprobante.Receptor.Domicilio.noExterior = "108";
            //Comprobante.Receptor.Domicilio.noInterior = "1";
            Comprobante.Receptor.Domicilio.colonia = "COL. NAPOLES";
            //Comprobante.Receptor.Domicilio.localidad = "TEOLOYUCAN";
            Comprobante.Receptor.Domicilio.municipio    = "Benito Juarez";
            Comprobante.Receptor.Domicilio.estado       = "Distrito Federal";
            Comprobante.Receptor.Domicilio.pais         = "MEXICO";
            Comprobante.Receptor.Domicilio.codigoPostal = "03810";


            //Crear un nuevo concepto
            FIGeneradorFacturaElectronica.Concepto Concepto1 = new FIGeneradorFacturaElectronica.Concepto();
            Concepto1.cantidad      = 1;
            Concepto1.descripcion   = "Software";
            Concepto1.valorUnitario = new FIGeneradorFacturaElectronica.Importe(1000);
            Concepto1.importe       = new FIGeneradorFacturaElectronica.Importe(1000);
            //Concepto1.noIdentificacion = "PINO";
            //nuevo en los conceptos
            Concepto1.unidad = "Pieza";

            //ejemplo para agregar una cuenta predial al concepto
            //Concepto1.CuentaPredial="rur85859";

            //ejemplo para agregarle informacion aduanera en el concepto
            FIGeneradorFacturaElectronica.t_InformacionAduanera informacionAduanera = new t_InformacionAduanera();
            informacionAduanera.numero = "120";
            informacionAduanera.fecha  = System.DateTime.Now;
            informacionAduanera.numero = "234";
            informacionAduanera.aduana = "AICM";

            Parte parte = new Parte();

            parte.InformacionAduanera.Add(informacionAduanera);
            parte.cantidad    = 1;
            parte.descripcion = "Prueba";

            Concepto1.Parte.Add(parte);

            //crear otro concepto
            FIGeneradorFacturaElectronica.Concepto Concepto2 = new FIGeneradorFacturaElectronica.Concepto();
            Concepto2.cantidad      = 1;
            Concepto2.descripcion   = "VALIDACION";
            Concepto2.valorUnitario = new FIGeneradorFacturaElectronica.Importe(100);
            Concepto2.importe       = new FIGeneradorFacturaElectronica.Importe(100);
            Concepto2.unidad        = "No aplica";

            //agregando complemento concepto al comprobante por order y cuenta de terceros
            AgregarComplementoterceros(Concepto2);

            //crear otro concepto
            FIGeneradorFacturaElectronica.Concepto Concepto3 = new FIGeneradorFacturaElectronica.Concepto();
            Concepto3.cantidad      = 1;
            Concepto3.descripcion   = "Factura";
            Concepto3.valorUnitario = new FIGeneradorFacturaElectronica.Importe(1.50);
            Concepto3.importe       = new FIGeneradorFacturaElectronica.Importe(1.50);
            Concepto3.unidad        = "Pieza";

            //Invocamos a la muestra de como crear complemento iedu
            //AgregarComplementoiedu(Concepto3);

            //Agregando los conceptos al comprobante
            Comprobante.Conceptos.Add(Concepto1);
            Comprobante.Conceptos.Add(Concepto2);
            Comprobante.Conceptos.Add(Concepto3);

            //totales de impuestos
            Comprobante.Impuestos.totalImpuestosRetenidos   = new FIGeneradorFacturaElectronica.Importe(2317.44);
            Comprobante.Impuestos.totalImpuestosTrasladados = new FIGeneradorFacturaElectronica.Importe(176);

            //nuevo impuesto de tipo Traslado
            FIGeneradorFacturaElectronica.Traslado Traslado = new FIGeneradorFacturaElectronica.Traslado();
            Traslado.impuesto = FIGeneradorFacturaElectronica.Traslado.TipoImpuesto.IVA;
            Traslado.tasa     = new FIGeneradorFacturaElectronica.Importe(16);
            Traslado.importe  = new FIGeneradorFacturaElectronica.Importe(176);

            //agregar el impuesto
            Comprobante.Impuestos.Traslados.Add(Traslado);


            //Nuevo impuesto tipo retencion
            FIGeneradorFacturaElectronica.Retencion Retencion = new FIGeneradorFacturaElectronica.Retencion();
            Retencion.impuesto = FIGeneradorFacturaElectronica.Retencion.TipoImpuesto.IVA;
            Retencion.importe  = new FIGeneradorFacturaElectronica.Importe(2317.44);

            //agregar retencion
            Comprobante.Impuestos.Retenciones.Add(Retencion);

            //invocamos a la muestra de como crear complemento de impuestos locales
            //AgregarComplementoImpuestosLocales(Comprobante);

            //Invocamos a la muestra de como crear complemento de donatarios
            //AgregarComplementoDonatarios(Comprobante);



            //nuevo objeto para la generacion del CFDI especificando el tipo
            FIGeneradorFacturaElectronica.Generador GenCFDI = new FIGeneradorFacturaElectronica.Generador(FIGeneradorFacturaElectronica.Generador.TipoFacturacion.CFDI);

            //Generar el nuevo comprobante y obtener el numero de errores
            List <cErrores> Errores = GenCFDI.NuevoComprobante(Comprobante);

            //si el listado de errores es mayor a 1 quiere decir que existen un error y no puede generarse el preCFDI
            if (Errores.Count == 0)
            {
                String   PreCFDI        = String.Empty;
                cErrores ErroresPreCFDI = null;
                //generar el preCFDI si es correcto se regresa true y puede ahora timbrase
                if (GenCFDI.GenerarPreCFDI(PosicionCertificado + ArchivoKey, PosicionCertificado + ArchivoCertificado, ContraseñaCertificado, out PreCFDI, out ErroresPreCFDI))
                {
                    //Timbrando preCFDI
                    String CFDITimbrado = String.Empty;
                    //Conexion para timbrado
                    FIGeneradorFacturaElectronica.Timbre Timbrado = new FIGeneradorFacturaElectronica.Timbre();
                    //Si Timbrar devuelve true quiere decir que el timbre esta generado y podemos obtener las informacion del timbre de sus metodos
                    if (Timbrado.Timbrar(CodigoUsuarioProveedor, CodigoUsuario, IdSucursal, PreCFDI, Comprobante.total.Valor.ToString(), out CFDITimbrado, cbQR.Checked))
                    {
                        String XMLTimbre = Timbrado.XMLTimbre; //nuestro timbre generado
                        txtResultado.Text = CFDITimbrado;      //nuestro CFDI ya timbrado
                        txtUUID.Text      = Timbrado.UUID;
                        if (cbQR.Checked)
                        {
                            pbQR.Image = Timbrado.QRImagen; //imagen QR
                        }
                        lstErrores.Items.Clear();
                        lstErrores.Items.Add("Sin errores");
                    }
                    else
                    {
                        lstErrores.Items.Clear();
                        lstErrores.DataSource  = Timbrado.Errores;
                        lstErrores.ValueMember = "Error";
                    }
                }
                else
                {
                    lstErrores.Items.Clear();
                    lstErrores.Items.Add(ErroresPreCFDI.Descripcion);
                }
            }
            else
            {
                lstErrores.Items.Clear();
                lstErrores.DataSource    = Errores;
                lstErrores.DisplayMember = "Descripcion";
            }
        }
Example #15
0
File: Ani.cs Project: MetLob/tinke
        public Parte Obtener_ParteARJ(long posicion, ColorDepth tipo)
        {
            Parte parte = new Parte();

            BinaryReader rdr = new BinaryReader(File.OpenRead(archivo));
            rdr.BaseStream.Position = posicion;

            parte.offSet = (ulong)posicion;
            ushort width = rdr.ReadUInt16();
            ushort height = rdr.ReadUInt16();
            parte.posX = (ushort)rdr.ReadUInt16();
            parte.posY = (ushort)rdr.ReadUInt16();
            parte.width = (ushort)Math.Pow(2, 3 + rdr.ReadUInt16());
            parte.height = (ushort)Math.Pow(2, 3 + rdr.ReadUInt16());

            if (tipo == ColorDepth.Depth8Bit)
            {
                parte.length = (uint)parte.width * parte.height;
                parte.datos = rdr.ReadBytes((int)parte.length);
            }
            else
            {
                parte.length = (uint)(parte.width * parte.height) / 2;
                parte.datos = Ekona.Helper.BitsConverter.BytesToBit4(rdr.ReadBytes((int)parte.length));
            }

            rdr.Close();

            return parte;
        }
Example #16
0
 public void Atualizar(Parte parte)
 {
     throw new NotImplementedException();
 }
        private void btnTimbrar_Click(object sender, EventArgs e)
        {
            //crear un nuevo comprobante CFDI para la version 3.2
            FIGeneradorFacturaElectronica.ComprobanteCFDI32 Comprobante=new ComprobanteCFDI32();
            Comprobante.serie = "MER";
            Comprobante.folio = "8223"; //dato no obligatorio
            Comprobante.fecha = System.DateTime.Now;
            Comprobante.formaDePago = "Pago en una sola exhibición";
            Comprobante.subTotal = new FIGeneradorFacturaElectronica.Importe(1100);
            Comprobante.total = new FIGeneradorFacturaElectronica.Importe(1276);
            Comprobante.tipoDeComprobante = "ingreso";
            Comprobante.Moneda = "MXN";
            //Comprobante.TipoCambio = "1"; //utilizar en caso de moneda extranjera
            Comprobante.noCertificado = NoCertificado;

            // Campos nuevos en comprobante
            Comprobante.LugarExpedicion = "VERACRUZ";
            Comprobante.NumCtaPago = "NO IDENTIFICADO";
            Comprobante.metodoDePago = "NO IDENTIFICADO";

            //Campo nuevo en Emisor
            Comprobante.Emisor.RegimenFiscal.Add("REGIMEN GENERAL DE LEY PERSONAS MORALES");

            //Llenado de datos del emisor
            Comprobante.Emisor.rfc = RFC;
            Comprobante.Emisor.nombre = "Empresa de prueba";
            Comprobante.Emisor.DomicilioFiscal.calle = "Av. Paseo de la Reforma";
            Comprobante.Emisor.DomicilioFiscal.noExterior = "89";
            Comprobante.Emisor.DomicilioFiscal.noInterior = "103";
            Comprobante.Emisor.DomicilioFiscal.colonia = "Cuauhtemoc";
            Comprobante.Emisor.DomicilioFiscal.localidad = "Ciudad de Mexico";
            Comprobante.Emisor.DomicilioFiscal.municipio = "Cuauhtemoc";
            Comprobante.Emisor.DomicilioFiscal.estado = "Distrito Federal";
            Comprobante.Emisor.DomicilioFiscal.pais = "MEXICO";
            Comprobante.Emisor.DomicilioFiscal.codigoPostal = "06500";

            Comprobante.Emisor.ExpedidoEn.calle = "FRANCISCO PEREZ";
            Comprobante.Emisor.ExpedidoEn.noExterior = "35";
            Comprobante.Emisor.ExpedidoEn.noInterior = "1";
            Comprobante.Emisor.ExpedidoEn.colonia = "RICARDO FLORES MAGON";
            Comprobante.Emisor.ExpedidoEn.localidad = "VERACRUZ, VER.";
            Comprobante.Emisor.ExpedidoEn.municipio = "VERACRUZ";
            Comprobante.Emisor.ExpedidoEn.estado = "Veracruz";
            Comprobante.Emisor.ExpedidoEn.pais = "México";
            Comprobante.Emisor.ExpedidoEn.codigoPostal = "91900";

            //Llenado de datos del receptor
            Comprobante.Receptor.rfc = "FID080111867";
            Comprobante.Receptor.nombre = "FREIGHTIDEAS S.A DE C.V.";
            Comprobante.Receptor.Domicilio.calle = "ARIZONA";
            Comprobante.Receptor.Domicilio.noExterior = "108";
            //Comprobante.Receptor.Domicilio.noInterior = "1";
            Comprobante.Receptor.Domicilio.colonia = "COL. NAPOLES";
            //Comprobante.Receptor.Domicilio.localidad = "TEOLOYUCAN";
            Comprobante.Receptor.Domicilio.municipio = "Benito Juarez";
            Comprobante.Receptor.Domicilio.estado = "Distrito Federal";
            Comprobante.Receptor.Domicilio.pais = "MEXICO";
            Comprobante.Receptor.Domicilio.codigoPostal = "03810";

            //Crear un nuevo concepto
            FIGeneradorFacturaElectronica.Concepto Concepto1 = new FIGeneradorFacturaElectronica.Concepto();
            Concepto1.cantidad = 1;
            Concepto1.descripcion = "Software";
            Concepto1.valorUnitario = new FIGeneradorFacturaElectronica.Importe(1000);
            Concepto1.importe = new FIGeneradorFacturaElectronica.Importe(1000);
            //Concepto1.noIdentificacion = "PINO";
            //nuevo en los conceptos
            Concepto1.unidad = "Pieza";

            //ejemplo para agregar una cuenta predial al concepto
            //Concepto1.CuentaPredial="rur85859";

            //ejemplo para agregarle informacion aduanera en el concepto
            FIGeneradorFacturaElectronica.t_InformacionAduanera informacionAduanera=new t_InformacionAduanera();
            informacionAduanera.numero = "120";
            informacionAduanera.fecha = System.DateTime.Now;
            informacionAduanera.numero = "234";
            informacionAduanera.aduana = "AICM";

            Parte parte=new Parte();
            parte.InformacionAduanera.Add(informacionAduanera);
            parte.cantidad = 1;
            parte.descripcion = "Prueba";

            Concepto1.Parte.Add(parte);

            //crear otro concepto
             FIGeneradorFacturaElectronica.Concepto Concepto2 = new FIGeneradorFacturaElectronica.Concepto();
             Concepto2.cantidad=1;
             Concepto2.descripcion = "VALIDACION";
             Concepto2.valorUnitario=new FIGeneradorFacturaElectronica.Importe(100);
             Concepto2.importe = new FIGeneradorFacturaElectronica.Importe(100);
             Concepto2.unidad = "No aplica";

            //agregando complemento concepto al comprobante por order y cuenta de terceros
            AgregarComplementoterceros(Concepto2);

            //crear otro concepto
            FIGeneradorFacturaElectronica.Concepto Concepto3 = new FIGeneradorFacturaElectronica.Concepto();
            Concepto3.cantidad = 1;
            Concepto3.descripcion = "Factura";
            Concepto3.valorUnitario = new FIGeneradorFacturaElectronica.Importe(1.50);
            Concepto3.importe = new FIGeneradorFacturaElectronica.Importe(1.50);
            Concepto3.unidad = "Pieza";

            //Invocamos a la muestra de como crear complemento iedu
            AgregarComplementoiedu(Concepto3);

            //Agregando los conceptos al comprobante
            Comprobante.Conceptos.Add(Concepto1);
            Comprobante.Conceptos.Add(Concepto2);
            Comprobante.Conceptos.Add(Concepto3);

            //totales de impuestos
            Comprobante.Impuestos.totalImpuestosRetenidos = new FIGeneradorFacturaElectronica.Importe(2317.44);
            Comprobante.Impuestos.totalImpuestosTrasladados = new FIGeneradorFacturaElectronica.Importe(176);

            //nuevo impuesto de tipo Traslado
            FIGeneradorFacturaElectronica.Traslado Traslado = new FIGeneradorFacturaElectronica.Traslado();
            Traslado.impuesto = FIGeneradorFacturaElectronica.Traslado.TipoImpuesto.IVA;
            Traslado.tasa = new FIGeneradorFacturaElectronica.Importe(16);
            Traslado.importe = new FIGeneradorFacturaElectronica.Importe(176);

            //agregar el impuesto
            Comprobante.Impuestos.Traslados.Add(Traslado);

            //Nuevo impuesto tipo retencion
            FIGeneradorFacturaElectronica.Retencion Retencion = new FIGeneradorFacturaElectronica.Retencion();
            Retencion.impuesto = FIGeneradorFacturaElectronica.Retencion.TipoImpuesto.IVA;
            Retencion.importe = new FIGeneradorFacturaElectronica.Importe(2317.44);

            //agregar retencion
            Comprobante.Impuestos.Retenciones.Add(Retencion);

            //invocamos a la muestra de como crear complemento de impuestos locales
            //AgregarComplementoImpuestosLocales(Comprobante);

            //Invocamos a la muestra de como crear complemento de donatarios
            //AgregarComplementoDonatarios(Comprobante);

            //nuevo objeto para la generacion del CFDI especificando el tipo
            FIGeneradorFacturaElectronica.Generador GenCFDI = new FIGeneradorFacturaElectronica.Generador(FIGeneradorFacturaElectronica.Generador.TipoFacturacion.CFDI);
            //Generar el nuevo comprobante y obtener el numero de errores
            List<String> Errores = GenCFDI.NuevoComprobante(Comprobante);

            //si el listado de errores es mayor a 1 quiere decir que existen un error y no puede generarse el preCFDI
            if(Errores.Count==0)
            {
                String PreCFDI=String.Empty;
                String ErroresPreCFDI = String.Empty;
                //generar el preCFDI si es correcto se regresa true y puede ahora timbrase
                if (GenCFDI.GenerarPreCFDI(PosicionCertificado + ArchivoKey, PosicionCertificado + ArchivoCertificado, ContraseñaCertificado,out PreCFDI,out ErroresPreCFDI))
                {
                    //Timbrando preCFDI
                    String CFDITimbrado = String.Empty;
                    //Conexion para timbrado
                    FIGeneradorFacturaElectronica.Timbre Timbrado = new FIGeneradorFacturaElectronica.Timbre();
                    //Si Timbrar devuelve true quiere decir que el timbre esta generado y podemos obtener las informacion del timbre de sus metodos
                    if (Timbrado.Timbrar(CodigoUsuarioProveedor, CodigoUsuario, IdSucursal, PreCFDI, Comprobante.total.Valor.ToString(), out CFDITimbrado,cbQR.Checked))
                    {
                        String XMLTimbre = Timbrado.XMLTimbre; //nuestro timbre generado
                        txtResultado.Text = CFDITimbrado; //nuestro CFDI ya timbrado
                        txtUUID.Text = Timbrado.UUID;
                        if (cbQR.Checked)
                            pbQR.Image = Timbrado.QRImagen; //imagen QR
                        lstErrores.Items.Clear();
                        lstErrores.Items.Add("Sin errores");
                    }
                    else
                    {
                            lstErrores.Items.Clear();
                            lstErrores.DataSource = Timbrado.Errores;
                            lstErrores.ValueMember = "Error";
                    }
                }
                else
                {
                    lstErrores.Items.Clear();
                    lstErrores.Items.Add(ErroresPreCFDI);
                }
            }
            else
            {
                lstErrores.Items.Clear();
                lstErrores.DataSource = Errores;

            }
        }
Example #18
0
 public ReportarParteFaltante(int iParteID)
 {
     InitializeComponent();
     this.oParte = Datos.GetEntity <Parte>(q => q.ParteID == iParteID);
 }