private void BtnAnular_Click(object sender, EventArgs e) { if (MessageBox.Show("¿Seguro que desea anular la guia de transporte Nro: " + TxtNumGuiatransporte.Text + ".?", "Guia de remisión", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { CL_GuiaRemision objCL_GuiaRemision = new CL_GuiaRemision(); bool Valor; Valor = objCL_GuiaRemision.UpdateGuiaRemisionEstado(TxtGuia.Text, 10, "T", AppSettings.UserID, AppSettings.SedeID); } }
private void CrearGuias() { #region Crear guiaremision E_GuiaRemision ObjGuiaRemision = new E_GuiaRemision(); ObjGuiaRemision.EmpresaID = EmpresaIDUser; ObjGuiaRemision.NroJabas = Convert.ToInt16(TxtNroJabas.Value); ObjGuiaRemision.DesAnimal = TxtProducto.Value.ToString(); ObjGuiaRemision.NroGalpon = 0; ObjGuiaRemision.DomicilioPartida = DomicilioPartida; ObjGuiaRemision.NroDomicilioPartida = NroDomicilioPartida; ObjGuiaRemision.InteriorDomicilioPartida = IntDomicilioPartida; ObjGuiaRemision.ZonaDomicilioPartida = ZonaDomicilioPartida; ObjGuiaRemision.DistritoDomicilioPartida = DisDomicilioPartida; ObjGuiaRemision.ProvinciaDomicilioPartida = ProvDomicilioPartida; ObjGuiaRemision.DepartamentoDomicilioPartida = DepDomicilioPartida; ObjGuiaRemision.DomicilioLlegada = CboSedeDestino.Columns["NomSede"].Value.ToString(); if (CboSedeDestino.Columns["Numero"].Value == DBNull.Value) { ObjGuiaRemision.NroDomicilioLlegada = 0; } else { ObjGuiaRemision.NroDomicilioLlegada = Convert.ToInt16(CboSedeDestino.Columns["Numero"].Value); } if (CboSedeDestino.Columns["Interior"].Value == DBNull.Value) { ObjGuiaRemision.IntDomicilioLlegada = 0; } else { ObjGuiaRemision.IntDomicilioLlegada = Convert.ToInt16(CboSedeDestino.Columns["Interior"].Value); } ObjGuiaRemision.ZonaDomicilioLlegada = CboSedeDestino.Columns["Zona"].Value.ToString(); ObjGuiaRemision.DisDomicilioLlegada = CboSedeDestino.Columns["Distrito"].Value.ToString(); ObjGuiaRemision.ProvDomicilioLlegada = CboSedeDestino.Columns["Provincia"].Value.ToString(); ObjGuiaRemision.DepDomicilioLlegada = CboSedeDestino.Columns["Departamento"].Value.ToString(); ObjGuiaRemision.Destinatario = AppSettings.NomEmpresa; ObjGuiaRemision.RUCDestinatario = AppSettings.RUCEmpresa; ObjGuiaRemision.DireccionDestinatario = CboSedeDestino.Columns["NomSede"].Value.ToString(); ObjGuiaRemision.ObservacionDestinatario = null; ObjGuiaRemision.Marca = TxtMarca.Value.ToString(); ObjGuiaRemision.Placa = TxtPlaca.Value.ToString(); ObjGuiaRemision.Carrosa = TxtCarrosa.Text; ObjGuiaRemision.NombreChofer = NomTransportista; ObjGuiaRemision.DNIChofer = TxtDNITransportista.Value.ToString(); ObjGuiaRemision.FechaSalida = Convert.ToDateTime(DeFechaSalida.Value.ToString()); ObjGuiaRemision.ConfiguracionVehicular = TxtConfVehicular.Value.ToString(); if (TxtNroConstInscripcion.Text == "") { ObjGuiaRemision.NroConstInscripcion = 0; } else { ObjGuiaRemision.NroConstInscripcion = Convert.ToInt32(TxtNroConstInscripcion.Value); } ObjGuiaRemision.NroLicTransportista = TxtNroLicTransaportista.Value.ToString(); ObjGuiaRemision.NroFactura = ""; ObjGuiaRemision.Pesador = Pesador; ObjGuiaRemision.Galponero = Galponero; ObjGuiaRemision.UsuarioID = AppSettings.UserID; #endregion #region Crear GuiaTransportista //se crea guia de transportista si solo si el camion no pertenece a la empresa de destino E_GuiaTransporte ObjGuiaTransporte = new E_GuiaTransporte(); if ((EmpresaIDUser != CamionEmpresaID) && CamionEmpresaID != "EX") { ObjGuiaTransporte.EmpresaID = CamionEmpresaID; ObjGuiaTransporte.NumGuiaRemision = NumGuiaRemision; ObjGuiaTransporte.DomicilioPartida = DomicilioPartida; ObjGuiaTransporte.NroDomicilioPartida = NroDomicilioPartida; ObjGuiaTransporte.IntDomicilioPartida = IntDomicilioPartida; ObjGuiaTransporte.ZonaDomicilioPartida = ZonaDomicilioPartida; ObjGuiaTransporte.DisDomicilioPartida = DisDomicilioPartida; ObjGuiaTransporte.ProvDomicilioPartida = ProvDomicilioPartida; ObjGuiaTransporte.DepDomicilioPartida = DepDomicilioPartida; ObjGuiaTransporte.DomicilioLlegada = CboSedeDestino.Columns["NomSede"].Value.ToString(); if (CboSedeDestino.Columns["Numero"].Value == DBNull.Value) { ObjGuiaTransporte.NroDomicilioLlegada = 0; } else { ObjGuiaTransporte.NroDomicilioLlegada = Convert.ToInt16(CboSedeDestino.Columns["Numero"].Value); } if (CboSedeDestino.Columns["Interior"].Value == DBNull.Value) { ObjGuiaTransporte.IntDomicilioLlegada = 0; } else { ObjGuiaTransporte.IntDomicilioLlegada = Convert.ToInt16(CboSedeDestino.Columns["Interior"].Value); } ObjGuiaTransporte.ZonaDomicilioLlegada = CboSedeDestino.Columns["Zona"].Value.ToString(); ObjGuiaTransporte.DisDomicilioLlegada = CboSedeDestino.Columns["Distrito"].Value.ToString(); ObjGuiaTransporte.ProvDomicilioLlegada = CboSedeDestino.Columns["Provincia"].Value.ToString(); ObjGuiaTransporte.DepDomicilioLlegada = CboSedeDestino.Columns["Departamento"].Value.ToString(); ObjGuiaTransporte.Remitente = AppSettings.NomEmpresa; ObjGuiaTransporte.RUCRemitente = AppSettings.RUCEmpresa; ObjGuiaTransporte.DireccionRemitente = DomicilioPartida; ObjGuiaTransporte.ObservacionRemitente = null; ObjGuiaTransporte.Destinatario = AppSettings.NomEmpresa; ObjGuiaTransporte.RUCDestinatario = AppSettings.RUCEmpresa; ObjGuiaTransporte.DireccionDestinatario = CboSedeDestino.Columns["NomSede"].Value.ToString(); ObjGuiaTransporte.ObservacionDestinatario = null; ObjGuiaTransporte.Marca = CboVehiculo.SelectedText; ObjGuiaTransporte.Placa = TxtPlaca.Value.ToString(); ObjGuiaTransporte.Carrosa = TxtCarrosa.Text; ObjGuiaTransporte.NombreChofer = NomTransportista; ObjGuiaTransporte.DNIChofer = TxtDNITransportista.Value.ToString(); ObjGuiaTransporte.FechaSalida = Convert.ToDateTime(DeFechaSalida.Value); ObjGuiaTransporte.ConfiguracionVehicular = TxtConfVehicular.Value.ToString(); if (TxtNroConstInscripcion.Value.ToString() == "") { ObjGuiaTransporte.NroConstInscripcion = 0; } else { ObjGuiaTransporte.NroConstInscripcion = Convert.ToInt32(TxtNroConstInscripcion.Value); } ObjGuiaTransporte.NroLicTransportista = TxtNroLicTransaportista.Value.ToString(); ObjGuiaTransporte.UsuarioID = AppSettings.UserID; } #endregion #region Acumular los totales de las guias NetoTotal += Neto; TaraTotal += Tara; BrutoTotal += Bruto; NroJabasTotal += NroJabas; Cantidad += Cantidad; #endregion //obtener peso total PesoTotal += Convert.ToDecimal(TxtBruto.Text); DataSet Ds = new DataSet(); Ds = new CL_GuiaRemision().CrearGuias(DtPesoBruto, DtTara, Convert.ToDecimal(TxtBruto.Text), ObjGuiaRemision, AppSettings.SedeID, CamionEmpresaID, TxtCodigo.Text, TxtRequerimiento.Text, Convert.ToDecimal(TxtNeto.Text), Convert.ToDecimal(TxtTara.Text), Convert.ToDecimal(TxtCantidad.Text), Convert.ToDecimal(TxtRecibido.Text), Convert.ToDecimal(TxtSolicitado.Text), Convert.ToDecimal(TxtTransito.Text), Convert.ToDecimal(TxtNroJabas.Text), CboSedeDestino.Columns["NomSede"].Value.ToString(), AlmacenIDLocal, ObjGuiaTransporte, CboSedeDestino.SelectedValue.ToString(), AppSettings.UserID); #region mostrar en grilla //extraer los registros de la tabla if (Ds.Tables["DtGuias"].Rows.Count > 0) { foreach (DataRow Row in Ds.Tables["DtGuias"].Rows) { DtGuias.ImportRow(Row); } } TbDespachoPollo.SelectedIndex = 2; TdgGuias.SetDataBinding(DtGuias, "", true); #endregion }
private void MostrarGuia(string NumGuia) { #region Limpiar //Recorremos todos los textos y los limpiamos foreach (Control ctrl in this.Controls) { if (ctrl is C1.Win.C1Input.C1TextBox) { C1.Win.C1Input.C1TextBox t = ctrl as C1.Win.C1Input.C1TextBox; t.Text = ""; } else if (ctrl is ToolStripContainer) { foreach (Control c in ctrl.Controls) { if (c is ToolStripContentPanel) { foreach (Control d in c.Controls) { if (d is C1.Win.C1Input.C1TextBox) { C1.Win.C1Input.C1TextBox t = d as C1.Win.C1Input.C1TextBox; t.Text = ""; } } } } } } //Limpiar listas LstTara1.Items.Clear(); LstTara2.Items.Clear(); LstTara3.Items.Clear(); LstTara4.Items.Clear(); LstBruto1.Items.Clear(); LstBruto2.Items.Clear(); LstBruto3.Items.Clear(); LstBruto4.Items.Clear(); LstBruto5.Items.Clear(); LstBruto6.Items.Clear(); //label que muestra el estado LblEstado.Text = ""; LblEstado.ForeColor = Color.Blue; BtnAnular.Visible = false; #endregion #region Cabecera CL_GuiaRemision ObjCL_GuiaRemision = new CL_GuiaRemision(); DtCabecera = new DataTable(); DtDetalle = new DataTable(); DtDetallePeso = new DataTable(); DtCabecera = ObjCL_GuiaRemision.GetCabeceraGuiaRemision(NumGuia); if (DtCabecera.Rows.Count > 0) { DtDetalle = ObjCL_GuiaRemision.GetDetalleGuiaRemision(NumGuia, "D"); DtDetallePeso = ObjCL_GuiaRemision.GetDetalleGuiaRemisionPeso(NumGuia); TxtEmpresa.Text = AppSettings.NomEmpresa; LblDireccion.Text = AppSettings.NomSede; TxtFechaEmision.Text = DateTime.Now.Date.ToString(); TxtRuc.Text = AppSettings.RUCEmpresa; TxtNumGuiaRemision.Text = DtCabecera.Rows[0]["NumGuiaRemision"].ToString().Substring(2); TxtFechaInicioTraslado.Text = DtCabecera.Rows[0]["FechaSalida"].ToString(); TxtDomicilioPartida.Text = DtCabecera.Rows[0]["DomicilioPartida"].ToString(); TxtNroDomicilioPartida.Text = DtCabecera.Rows[0]["NroDomicilioPartida"].ToString(); TxtIntDomicilioPartida.Text = DtCabecera.Rows[0]["InteriorDomicilioPartida"].ToString(); TxtZonaDomicilioPartida.Text = DtCabecera.Rows[0]["ZonaDomicilioPartida"].ToString(); TxtDisDomicilioPartida.Text = DtCabecera.Rows[0]["DistritoDomicilioPartida"].ToString(); TxtProvDomicilioPartida.Text = DtCabecera.Rows[0]["ProvinciaDomicilioPartida"].ToString(); TxtDepDomicilioPartida.Text = DtCabecera.Rows[0]["DepartamentoDomicilioPartida"].ToString(); TxtDomicilioLlegada.Text = DtCabecera.Rows[0]["DomicilioLlegada"].ToString(); TxtNroDomicilioLlegada.Text = DtCabecera.Rows[0]["NroDomicilioLlegada"].ToString(); TxtIntDomicilioLlegada.Text = DtCabecera.Rows[0]["IntDomicilioLlegada"].ToString(); TxtZonaDomicilioLlegada.Text = DtCabecera.Rows[0]["ZonaDomicilioLlegada"].ToString(); TxtDisDomicilioLlegada.Text = DtCabecera.Rows[0]["DisDomicilioLlegada"].ToString(); TxtProvDomicilioLlegada.Text = DtCabecera.Rows[0]["ProvDomicilioLlegada"].ToString(); TxtDepDomicilioLlegada.Text = DtCabecera.Rows[0]["DepDomicilioLlegada"].ToString(); TxtDestinatario.Text = DtCabecera.Rows[0]["Destinatario"].ToString(); TxtRUCDestinatario.Text = DtCabecera.Rows[0]["RUCDestinatario"].ToString(); TxtConfVehicular.Text = DtCabecera.Rows[0]["ConfiguracionVehicular"].ToString(); TxtMarca.Text = DtCabecera.Rows[0]["Marca"].ToString(); TxtPlaca.Text = DtCabecera.Rows[0]["Placa"].ToString(); TxtNroConstInscripcion.Text = DtCabecera.Rows[0]["NroConstInscripcion"].ToString(); TxtNroLicTransaportista.Text = DtCabecera.Rows[0]["NroLicTransportista"].ToString(); TxtNombreChofer.Text = DtCabecera.Rows[0]["NombreChofer"].ToString(); TxtNroJabas.Text = DtCabecera.Rows[0]["NroJabas"].ToString(); TxtPesador.Text = DtCabecera.Rows[0]["Pesador"].ToString(); TxtGalponero.Text = DtCabecera.Rows[0]["Galponero"].ToString(); //estado de la guia int EstadoID; EstadoID = Convert.ToInt16(DtCabecera.Rows[0]["EstadoID"]); if (EstadoID == 0) { LblEstado.Text = "PLANEADO"; LblEstado.ForeColor = Color.Blue; BtnAnular.Visible = true; } else if (EstadoID == 10) { LblEstado.Text = "ANULADO"; LblEstado.ForeColor = Color.Red; BtnAnular.Visible = false; } else if (EstadoID == 11) { LblEstado.Text = "CERRADO"; LblEstado.ForeColor = Color.Blue; BtnAnular.Visible = false; } } else { BtnAnular.Visible = false; } #endregion #region Detalles //mostrar los productos (en este caso solo uno) if (DtCabecera.Rows.Count > 0) { decimal Tara = 0; decimal Neto = 0; decimal Bruto = 0; int Aves = 0; TxtProducto.Text = DtDetalle.Rows[0]["NomProducto"].ToString(); Tara = Convert.ToDecimal(DtDetalle.Rows[0]["PesoTara"].ToString()); Neto = Convert.ToDecimal(DtDetalle.Rows[0]["PesoNeto"].ToString()); Bruto = Neto + Tara; TxtNeto.Text = Neto.ToString(); TxtTara.Text = Tara.ToString(); TxtBruto.Text = Bruto.ToString(); Aves = Convert.ToInt16(DtDetalle.Rows[0]["CantidadEnviada"]); TxtAves.Text = Aves.ToString(); TxtPesoPromedio.Text = (Neto / Aves).ToString("#,##0.00"); DtTara = new DataTable(); DtTara.Columns.Add("Peso", typeof(decimal)); DtBruto = new DataTable(); DtBruto.Columns.Add("Peso", typeof(decimal)); foreach (DataRow Row in DtDetallePeso.Rows) { string Tipo = Row["Tipo"].ToString(); decimal Peso = Convert.ToDecimal(Row["Peso"]); if (Tipo == "T") { DataRow RowT = DtTara.NewRow(); RowT["Peso"] = Peso; DtTara.Rows.Add(RowT); } else { DataRow RowB = DtBruto.NewRow(); RowB["Peso"] = Peso; DtBruto.Rows.Add(RowB); } } //llenar listas de tara int y = 0; foreach (DataRow Dr in DtTara.Rows) { y++; switch (y) { case 1: LstTara1.Items.Add(Dr["Peso"]); break; case 2: LstTara2.Items.Add(Dr["Peso"]); break; case 3: LstTara3.Items.Add(Dr["Peso"]); break; case 4: LstTara4.Items.Add(Dr["Peso"]); y = 0; break; } } //llenar listas de peso bruto int j = 0; foreach (DataRow Dr in DtBruto.Rows) { j++; switch (j) { case 1: LstBruto1.Items.Add(Dr["Peso"]); break; case 2: LstBruto2.Items.Add(Dr["Peso"]); break; case 3: LstBruto3.Items.Add(Dr["Peso"]); break; case 4: LstBruto4.Items.Add(Dr["Peso"]); break; case 5: LstBruto5.Items.Add(Dr["Peso"]); break; case 6: LstBruto6.Items.Add(Dr["Peso"]); j = 0; break; } } } #endregion }
private void BtnAnular_Click(object sender, EventArgs e) { if (MessageBox.Show("¿Seguro que desea anular la guia de remisión Nro: " + TxtNumGuiaRemision.Text + ".?", "Guia de remisión", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { //****************************** anular guia ***************************************** #region Crear Tablas //tabla para actualizar el nuevo stock (agregar productos recepcionados) DataTable DtActuStockLocal = new DataTable(); DtActuStockLocal.TableName = "StockAlmacen"; DtActuStockLocal.Columns.Add("NumRequerimiento", typeof(string)); DtActuStockLocal.Columns.Add("AlmacenID", typeof(string)); DtActuStockLocal.Columns.Add("ProductoID", typeof(string)); DtActuStockLocal.Columns.Add("StockAdicion", typeof(decimal)); #endregion //actualizar datos del requerimiento CL_Requerimientos ObjCL_Requerimientos = new CL_Requerimientos(); CL_GuiaRemision ObjCL_GuiaRemision = new CL_GuiaRemision(); foreach (DataRow Row2 in DtDetalle.Rows) { #region Actualizar Estado Requerimientos string NumRequerimiento; decimal CantidadTransito; string ProductoID; NumRequerimiento = Row2["NumRequerimiento"].ToString(); ProductoID = Row2["ProductoID"].ToString(); CantidadTransito = Convert.ToDecimal(Row2["CantidadEnviada"]); bool Valor; Valor = ObjCL_Requerimientos.UpdateDetalleRequerimientoAnulado(NumRequerimiento, CantidadTransito, ProductoID, AppSettings.UserID, AppSettings.SedeID); if (Valor == false) { MessageBox.Show("ocurrio un error al intentar actualizar el requerimiento: \r\nNumRequerimiento: " + NumRequerimiento + "ProductoID: " + ProductoID + "\r\nCantidadTransito: " + CantidadTransito, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } Valor = ObjCL_GuiaRemision.UpdateGuiaRemisionEstado(TxtGuia.Text, 10, "A", AppSettings.UserID, AppSettings.SedeID); #endregion #region llenar tabla para actualizar el stock local DataRow DrR = DtActuStockLocal.NewRow(); DrR["NumRequerimiento"] = Row2["NumRequerimiento"]; DrR["AlmacenID"] = AppSettings.EmpresaID + AppSettings.SedeID + "000"; DrR["ProductoID"] = Row2["ProductoID"]; DrR["StockAdicion"] = Row2["CantidadEnviada"]; DtActuStockLocal.Rows.Add(DrR); #endregion } #region agrupar para actualizar el stock local //Agrupar los productos apra almacenarlos DataTable DtProducto = new DataTable(); DataTable DtActuStockLocal2 = new DataTable(); DtActuStockLocal2.TableName = "StockAlmacen"; DtActuStockLocal2.Columns.Add("NumRequerimiento", typeof(string)); DtActuStockLocal2.Columns.Add("AlmacenID", typeof(string)); DtActuStockLocal2.Columns.Add("ProductoID", typeof(string)); DtActuStockLocal2.Columns.Add("StockAdicion", typeof(decimal)); DtProducto = new BaseFunctions().SelectDistinct(DtActuStockLocal, "ProductoID", "AlmacenID"); foreach (DataRow RowP in DtProducto.Rows) { DataView Dv = new DataView(DtActuStockLocal); Dv.RowFilter = "ProductoID = '" + RowP["ProductoID"] + "' and AlmacenID = '" + RowP["AlmacenID"] + "'"; decimal Suma = 0; string NumRequerimiento = ""; foreach (DataRowView Drv in Dv) //sumar las cantidades por producto { Suma += Convert.ToDecimal(Drv["StockAdicion"]); NumRequerimiento = Drv["NumRequerimiento"].ToString(); } DataRow DrR = DtActuStockLocal2.NewRow(); DrR["NumRequerimiento"] = NumRequerimiento; DrR["AlmacenID"] = RowP["AlmacenID"]; DrR["ProductoID"] = RowP["ProductoID"]; DrR["StockAdicion"] = Suma; DtActuStockLocal2.Rows.Add(DrR); } #endregion #region Actualizar el stock CL_Almacen ObjCL_Almacen = new CL_Almacen(); foreach (DataRow R in DtActuStockLocal2.Rows) { ObjCL_Almacen.UpdateStockAdidion(R["AlmacenID"].ToString(), R["ProductoID"].ToString(), Convert.ToDecimal(R["StockAdicion"]), R["NumRequerimiento"].ToString(), "R"); } #endregion } MessageBox.Show("Se termino de anular la guía", "Guia remitente", MessageBoxButtons.OK, MessageBoxIcon.Information); }
private void CrearHojaDespacho() { //obtener el distinct de las facturas para crear guias de remitente y de transportista DtFacturas = new DataTable(); DtFacturas = new BaseFunctions().SelectDistinct(DetallesRequerimientos, "Factura"); //calcular el total del peso enviado for (int i = 0; i < this.TdgDetalleHojaDespacho.Splits[0].Rows.Count; i++) { if (this.TdgDetalleHojaDespacho.Columns[2].CellValue(i) != DBNull.Value) { PesoTotal += Convert.ToInt32(this.TdgDetalleHojaDespacho.Columns[10].CellValue(i)); } } #region crear tablas //Insertar Hoja de despacho E_HojaDespacho ObjHojaDespacho = new E_HojaDespacho(); ObjHojaDespacho.EmpresaID = AppSettings.EmpresaID; ObjHojaDespacho.EmpresaTransporte = EmpresaTransporte; ObjHojaDespacho.NombreChofer = NomTransportista; ObjHojaDespacho.placa = TxtPlaca.Text; ObjHojaDespacho.Carrosa = TxtCarrosa.Text; ObjHojaDespacho.FechaLlegada = Convert.ToDateTime(DeFechaLlegada.Value); ObjHojaDespacho.FechaSalida = Convert.ToDateTime(DeFechaSalida.Value); ObjHojaDespacho.NumJabas = 0; ObjHojaDespacho.PesoTotal = PesoTotal; ObjHojaDespacho.PesoNeto = 0; ObjHojaDespacho.TotalAnimales = 0; ObjHojaDespacho.TaraTotal = 0; ObjHojaDespacho.UsuarioID = AppSettings.UserID; NumHojaDespacho = new CL_HojaDespacho().InsertHojaDespacho(ObjHojaDespacho, AppSettings.SedeID); //Tabla para insertar el detalle de la hoja de despacho DetalleHojaDespacho = new DataTable(); DetalleHojaDespacho.TableName = "DetalleHojaDespacho"; DetalleHojaDespacho.Columns.Add("ProductoID", typeof(string)); DetalleHojaDespacho.Columns.Add("NumHojaDespacho", typeof(string)); DetalleHojaDespacho.Columns.Add("NumGuiaRemision", typeof(string)); DetalleHojaDespacho.Columns.Add("NumRequerimiento", typeof(string)); DetalleHojaDespacho.Columns.Add("NroFactura", typeof(string)); DetalleHojaDespacho.Columns.Add("TotalPeso", typeof(decimal)); DetalleHojaDespacho.Columns.Add("Motivo", typeof(string)); DetalleHojaDespacho.Columns.Add("NumGuiaTransportista", typeof(string)); DetalleHojaDespacho.Columns.Add("Bultos", typeof(string)); DetalleHojaDespacho.Columns.Add("IDProveedor", typeof(int)); //Tabla para Mostrar Hoja de despacho DetalleHojaDespacho2 = new DataTable(); DetalleHojaDespacho2.TableName = "DetalleHojaDespacho2"; DetalleHojaDespacho2.Columns.Add("Proveedor", typeof(string)); DetalleHojaDespacho2.Columns.Add("NroFactura", typeof(string)); DetalleHojaDespacho2.Columns.Add("NumGuiaRemision", typeof(string)); DetalleHojaDespacho2.Columns.Add("NumGuiaTransportista", typeof(string)); DetalleHojaDespacho2.Columns.Add("Producto", typeof(string)); DetalleHojaDespacho2.Columns.Add("TotalPeso", typeof(decimal)); DetalleHojaDespacho2.Columns.Add("Bultos", typeof(string)); #endregion foreach (DataRow Row in DtFacturas.Rows) { NroFactura = Row["Factura"].ToString(); //filtrar tabla para obtener los datos relacionados a la factura y asi crear las guias de remision DataView DvDetallesRequerimientos = new DataView(DetallesRequerimientos); DvDetallesRequerimientos.RowFilter = "Factura = '" + NroFactura + "'"; DataTable DtRequerimientos; DtRequerimientos = DvDetallesRequerimientos.ToTable(); DtRequerimientos.DefaultView.Sort = "Producto"; try { #region crear tablas //detalles de guia de remision DetalleGuiaRemision = new DataTable(); DetalleGuiaRemision.TableName = "DetalleGuiaRemision"; DetalleGuiaRemision.Columns.Add("NumGuiaRemision", typeof(string)); DetalleGuiaRemision.Columns.Add("ProductoID", typeof(string)); DetalleGuiaRemision.Columns.Add("NumRequerimiento", typeof(string)); DetalleGuiaRemision.Columns.Add("PesoNeto", typeof(decimal)); DetalleGuiaRemision.Columns.Add("PesoTara", typeof(decimal)); DetalleGuiaRemision.Columns.Add("CantidadEnviada", typeof(decimal)); DetalleGuiaRemision.Columns.Add("CantidadRecibida", typeof(decimal)); DetalleGuiaRemision.Columns.Add("EstadoID", typeof(int)); //detalles de guia de transporte DetalleGuiaTransporte = new DataTable(); DetalleGuiaTransporte.TableName = "DetalleGuiaTransportista"; DetalleGuiaTransporte.Columns.Add("NumGuiaTransportista", typeof(string)); DetalleGuiaTransporte.Columns.Add("ProductoID", typeof(string)); DetalleGuiaTransporte.Columns.Add("NumRequerimiento", typeof(string)); DetalleGuiaTransporte.Columns.Add("PesoNeto", typeof(decimal)); DetalleGuiaTransporte.Columns.Add("PesoTara", typeof(decimal)); DetalleGuiaTransporte.Columns.Add("CantidadEnviada", typeof(decimal)); //tabla para actualizar el estado del requerimiento DataTable DtActuEstadoReq = new DataTable(); DtActuEstadoReq.TableName = "DetalleRequerimiento"; DtActuEstadoReq.Columns.Add("NumRequerimiento", typeof(string)); DtActuEstadoReq.Columns.Add("CantidadTransito", typeof(decimal)); DtActuEstadoReq.Columns.Add("ProductoID", typeof(string)); DtActuEstadoReq.Columns.Add("EstadoID", typeof(int)); #endregion NumGuiaRemision = CrearGuiaRemitente(); //se crea guia de transportista si solo si el camion no pertenece a la empresa de destino if ((AppSettings.EmpresaID != CamionEmpresaID) && CamionEmpresaID != "EX") { NumGuiaTransportista = CrearGuiaTransporte(); } else { NumGuiaTransportista = ""; //no necesita guia de transporte } int Cantidad = 0; //contador que indicara si la cantidad de productos no sean mayor de 12 (lo que puede contener la guia) foreach (DataRow Row2 in DtRequerimientos.Rows) { Cantidad++; if (Cantidad > 12) { Cantidad = 1; //se crea guia de transportista si solo si el camion no pertenece a la empresa de destino if ((AppSettings.EmpresaID != CamionEmpresaID) && CamionEmpresaID != "EX") { NumGuiaTransportista = CrearGuiaTransporte(); } else { NumGuiaTransportista = ""; //no necesita guia de transporte } NumGuiaRemision = CrearGuiaRemitente(); } if (Row2["Anular"] == DBNull.Value || Row2["Anular"].ToString() == "False") { //analizar el stock y si se logro la actualizacion crear las guias bool Actualizo = false; //'9-' indica que es guia remitente //es para kardex if (Row2["TipoRequerimiento"].ToString() == "C") //en compras baja el stock local y el disponible { Actualizo = new CL_Almacen().UpdateStockSustraccion(Row2["AlmacenID"].ToString(), Convert.ToString(Row2["SProductoID"]), Convert.ToDecimal(Row2["CantidadDespachada"]), "D", AppSettings.EmpresaID + CboSedeDestino.SelectedValue.ToString() + Row2["AlmacenID"].ToString().Substring(7), 2, "09", NumGuiaRemision.Substring(2, 3), Convert.ToInt32(NumGuiaRemision.Substring(6)), "11", AppSettings.UserID); } else if (Row2["TipoRequerimiento"].ToString() == "T")//en transferencia solo baja el stock local { Actualizo = new CL_Almacen().UpdateStockSustraccion(Row2["AlmacenID"].ToString(), Convert.ToString(Row2["SProductoID"]), Convert.ToDecimal(Row2["CantidadDespachada"]), "S", AppSettings.EmpresaID + CboSedeDestino.SelectedValue.ToString() + Row2["AlmacenID"].ToString().Substring(7), 2, "09", NumGuiaRemision.Substring(2, 3), Convert.ToInt32(NumGuiaRemision.Substring(6)), "11", AppSettings.UserID); } if (Actualizo == true) { //para detalle guia remision DataRow RowGR = DetalleGuiaRemision.NewRow(); RowGR["NumGuiaRemision"] = NumGuiaRemision; RowGR["ProductoID"] = Row2["SProductoID"]; RowGR["NumRequerimiento"] = Row2["NumRequerimiento"]; RowGR["PesoNeto"] = Row2["PesoTotal"]; RowGR["PesoTara"] = 0; RowGR["CantidadEnviada"] = Row2["CantidadDespachada"]; RowGR["CantidadRecibida"] = DBNull.Value; RowGR["EstadoID"] = 2; DetalleGuiaRemision.Rows.Add(RowGR); //para detalle guia transporte if (NumGuiaTransportista != "") { DataRow RowGT = DetalleGuiaTransporte.NewRow(); RowGT["NumGuiaTransportista"] = NumGuiaTransportista; RowGT["ProductoID"] = Row2["SProductoID"]; RowGT["NumRequerimiento"] = Row2["NumRequerimiento"]; RowGT["PesoNeto"] = Row2["PesoTotal"]; RowGT["PesoTara"] = 0; RowGT["CantidadEnviada"] = Row2["CantidadDespachada"]; DetalleGuiaTransporte.Rows.Add(RowGT); } //para estado requerimiento DataRow RowD2 = DtActuEstadoReq.NewRow(); RowD2["ProductoID"] = Row2["ProductoID"]; RowD2["NumRequerimiento"] = Row2["NumRequerimiento"]; //identificar el estado actual del requerimiento if (AppSettings.SedeID == "001PU") { if (Convert.ToDecimal(Row2["CantidadRecibida"]) + Convert.ToDecimal(Row2["CantidadDespachada"]) == Convert.ToDecimal(Row2["CantidadSolicitada"])) { //transito DESTINO total RowD2["EstadoID"] = 9; } else if (Convert.ToDecimal(Row2["CantidadRecibida"]) + Convert.ToDecimal(Row2["CantidadDespachada"]) < Convert.ToDecimal(Row2["CantidadSolicitada"])) { //transito DESTINO parcial RowD2["EstadoID"] = 8; } /*siempre va a estar en transito porque la * transferencia es entre almacenes y no pasa por industria*/ if (RBTransferencia.Checked == true) { RowD2["CantidadTransito"] = Row2["CantidadDespachada"]; } /*en este caso sera "0" porque las compras vienen de lima*/ if (RbCompras.Checked == true) { RowD2["CantidadTransito"] = 0; } } else { if (Convert.ToDecimal(Row2["CantidadRecibida"]) + Convert.ToDecimal(Row2["CantidadTransito"]) + Convert.ToDecimal(Row2["CantidadDespachada"]) == Convert.ToDecimal(Row2["CantidadSolicitada"])) { //transito total RowD2["EstadoID"] = 2; } else if (Convert.ToDecimal(Row2["CantidadRecibida"]) + Convert.ToDecimal(Row2["CantidadTransito"]) + Convert.ToDecimal(Row2["CantidadDespachada"]) < Convert.ToDecimal(Row2["CantidadSolicitada"])) { //transito parcial RowD2["EstadoID"] = 6; } RowD2["CantidadTransito"] = Row2["CantidadDespachada"]; } DtActuEstadoReq.Rows.Add(RowD2); //para detalle hoja despacho DataRow RowHD = DetalleHojaDespacho.NewRow(); RowHD["ProductoID"] = Row2["SProductoID"]; RowHD["NumHojaDespacho"] = NumHojaDespacho; RowHD["NumGuiaRemision"] = NumGuiaRemision; RowHD["NumRequerimiento"] = Row2["NumRequerimiento"]; RowHD["NroFactura"] = Row2["Factura"]; RowHD["TotalPeso"] = Row2["PesoTotal"]; RowHD["Motivo"] = Row2["Motivo"]; RowHD["NumGuiaTransportista"] = NumGuiaTransportista; RowHD["Bultos"] = Row2["Bultos"]; RowHD["IDProveedor"] = Row2["IDProveedor"]; DetalleHojaDespacho.Rows.Add(RowHD); //para detalle hoja despacho para presentar DataRow RowHD2 = DetalleHojaDespacho2.NewRow(); RowHD2["Proveedor"] = Row2["Proveedor"]; RowHD2["NroFactura"] = Row2["Factura"]; RowHD2["NumGuiaRemision"] = NumGuiaRemision; RowHD2["NumGuiaTransportista"] = NumGuiaTransportista; RowHD2["Producto"] = Row2["Producto"]; RowHD2["TotalPeso"] = Row2["PesoTotal"]; RowHD2["Bultos"] = Row2["Bultos"]; DetalleHojaDespacho2.Rows.Add(RowHD2); } else { MessageBox.Show("No existe Stock suficiente en el almacen " + Row2["AlmacenID"].ToString() + " del producto \r\n" + Row2["Producto"].ToString() + ".", "Stock Almacen", MessageBoxButtons.OK, MessageBoxIcon.Stop); } } } #region Actualizar con Xml //insertar detalles guia remision if (DetalleGuiaRemision.Rows.Count > 0) { string xml = new BaseFunctions().GetXML(DetalleGuiaRemision).Replace("NewDataSet", "DocumentElement"); bool Valor; Valor = new CL_GuiaRemision().InsertXMLDetalleGuiaRemision(xml); if (Valor == false) { MessageBox.Show("Ocurrio un error al intentar guardar el detalle de la Guía de Remisión", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } //insertar detalle guia de transporte if (DetalleGuiaTransporte.Rows.Count > 0) { string xml = new BaseFunctions().GetXML(DetalleGuiaTransporte).Replace("NewDataSet", "DocumentElement"); bool Valor; Valor = new CL_GuiaTransportista().InsertXMLDetalleGuiaTransporte(xml); if (Valor == false) { MessageBox.Show("Ocurrio un error al intentar guardar el detalle de la Guía de Transporte", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } //actualizar estado de los requerimientos if (DtActuEstadoReq.Rows.Count > 0) { string xml = new BaseFunctions().GetXML(DtActuEstadoReq).Replace("NewDataSet", "DocumentElement"); bool Valor; Valor = new CL_Requerimientos().UpdateXMLDetalleRequerimientoEstado(xml, "E", AppSettings.UserID, AppSettings.SedeID); if (Valor == false) { MessageBox.Show("Ocurrio un error al intentar actualizar el estado de los requerimientos", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } MessageBox.Show("Se guardo correctamente los datos", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information); #endregion } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }//fin del foreach de las facturas //insertar los detalles de hoja de despacho if (DetalleHojaDespacho.Rows.Count > 0) { string xml = new BaseFunctions().GetXML(DetalleHojaDespacho).Replace("NewDataSet", "DocumentElement"); bool Valor; Valor = new CL_HojaDespacho().InsertXMLDetalleHojaDespacho(xml); if (Valor == false) { MessageBox.Show("Ocurrio un error al intentar insertar los detalles de la hoja de despacho", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { TdgDetalleHoja.Visible = true; TdgDetalleHoja.SetDataBinding(DetalleHojaDespacho2, "", true); } } }