예제 #1
0
        public static void getRemision(string FilePath, string TemplatePath, Salida_remision oSR)
        {
            PdfReader  reader  = new PdfReader(TemplatePath);
            PdfStamper stamper = new PdfStamper(reader, new FileStream(FilePath, FileMode.Create));

            try
            {
                AcroFields fields = stamper.AcroFields;
                // set form fields

                fields.SetField("folioRemision", oSR.Folio_remision);
                //fields.SetField("lblFolioRemision", "FOLIO REMISION");

                fields.SetField("codigoCliente", oSR.Codigo_cliente);
                //fields.SetField("lblCodigoCliente", "REFERENCIA");

                #region Trafico

                fields.SetField("lbllinea", "Línea: ");
                fields.SetField("linea", oSR.PTrafico.Transporte);

                fields.SetField("lbloperador", "Operador: ");
                fields.SetField("operador", oSR.PTrafico.Operador);

                fields.SetField("lblplaca", "Placa: ");
                fields.SetField("placa", oSR.PTrafico.Placa);

                fields.SetField("lblcita", "Folio - Fecha: ");
                string fechaCita = Convert.ToDateTime(oSR.PTrafico.Fecha_cita).ToString("dd/MM/yyyy");
                fields.SetField("cita", oSR.PTrafico.Folio_cita + " - " + fechaCita + " " + oSR.PTrafico.Hora_cita);

                #endregion


                CultureInfo ci = new CultureInfo("es-MX");
                fields.SetField("fecha_remision", oSR.Fecha_remision.ToString("dddd, dd \\de MMMM \\de yy", ci));

                string fullPedimento = EntradaCtrl.PedimentoGetFullNumber(oSR.Referencia);
                oSR.Referencia = fullPedimento;
                fields.SetField("referencia", fullPedimento);
                Cliente oC = CatalogCtrl.Cliente_GetByIdEntrada(oSR.Id_entrada);
                fields.SetField("cliente", oC.Razon.ToUpper());

                //fields.SetField("cliente"
                fields.SetField("proveedor", oSR.Proveedor);
                fields.SetField("proveedor_direccion", oSR.Proveedor_direccion);

                fields.SetField("codigo_k", oSR.Codigo);
                fields.SetField("codigo", oSR.Codigo);
                fields.SetField("orden_k", oSR.Orden);
                fields.SetField("orden", oSR.Orden);
                fields.SetField("vendor_k", oSR.Vendor);
                fields.SetField("vendor", oSR.Vendor);

                string lotePdf = string.Empty;
                string loteAct = string.Empty;
                string loteAnt = string.Empty;

                for (int indDet = 0; indDet < oSR.LstSRDetail.Count; indDet++)
                {
                    Salida_remision_detail item = oSR.LstSRDetail[indDet];
                    loteAct = item.Lote + string.Empty;
                    if (string.Compare(loteAct, loteAnt) != 0)
                    {
                        loteAnt  = loteAct;
                        lotePdf += loteAct + ", ";
                    }
                    switch (indDet)
                    {
                    case 0:
                        fields.SetField("bulto", item.Bulto.ToString("N0"));
                        fields.SetField("piezaxb", item.Piezaxbulto.ToString("N0"));
                        fields.SetField("pieza", item.Piezas.ToString("N0"));
                        break;

                    case 1:
                        fields.SetField("bulto_i", item.Bulto.ToString("N0"));
                        fields.SetField("piezaxb_i", item.Piezaxbulto.ToString("N0"));
                        fields.SetField("pieza_i", item.Piezas.ToString("N0"));
                        break;

                    default:
                        break;
                    }
                }
                if (lotePdf.Length > 0)
                {
                    lotePdf = lotePdf.Substring(0, lotePdf.Length - 2);
                }
                fields.SetField("mercancia_k", oSR.Mercancia + (lotePdf.Length > 0 ? "\nLote: " + lotePdf : ""));

                fields.SetField("lblCodigo", "Código");
                fields.SetField("lblOrden", "Orden de Compra");
                fields.SetField("lblDescripcion", "Descripción");
                fields.SetField("lblNoProveedor", "No. de Proveedor");
                fields.SetField("lblTotalCtns1", "Total CTNS:");
                fields.SetField("lblTotalCtns2", "Total CTNS:");
                fields.SetField("lblCartones1", "Cartones");
                fields.SetField("lblCartones2", "Cartones");
                fields.SetField("lblPiezasCU1", "Piezas C/U");
                fields.SetField("lblPiezasCU2", "Piezas C/U");
                fields.SetField("lblTotalPzas", "Total Piezas");

                addBarCodes(stamper, oSR);



                //fields.SetField("bulto", oSR.Bulto.ToString("N0"));
                //fields.SetField("bulto_i", oSR2.Bulto.ToString("N0"));

                //fields.SetField("piezaxb", oSR.Piezaxbulto.ToString("N0"));
                //fields.SetField("piezaxb_i", oSR2.Piezaxbulto.ToString("N0"));

                //fields.SetField("pieza", oSR.Pieza.ToString("N0"));
                //fields.SetField("pieza_i", oSR2.Pieza.ToString("N0"));

                //int total = oSR2.Pieza + oSR.Pieza;

                fields.SetField("piezatotal", oSR.PiezaTotal.ToString("N0"));


                fields.SetField("danada", "MERCANCÍA DAÑADA (" + oSR.Dano_especifico + ")");
                if (oSR.Dano_especifico.Trim().Length == 0)
                {
                    fields.RemoveField("danada");
                }

                fields.SetField("elaboro", oSR.Elaboro);
                fields.SetField("autorizo", oSR.Autorizo);

                stamper.FormFlattening = true;


                //addBarCodes(FilePath, oSR1);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                stamper.Close();
                reader.Close();
            }
        }