private void btnCrear_Click(object sender, EventArgs e) { if (btnCrear.Text == "Crear") { #region Orden de compra if (string.IsNullOrEmpty(txtMoneda.Text)) { this.SetMensaje("Campo MONEDA obligatorio", 5000, Color.Red, Color.White); return; } #region Crear try { #region Encabezado DocumentSAP = new SDK_SAP.Clases.Document(); Cursor.Current = Cursors.WaitCursor; DocumentSAP.CardCode = txtCardCode.Text; DocumentSAP.Series = 15; if (!String.IsNullOrWhiteSpace(txtFolio.Text)) { DocumentSAP.DocNum = Convert.ToInt32(txtFolio.Text); } else { DocumentSAP.DocNum = 0; } DocumentSAP.DocRate = (double)Rate; DocumentSAP.DocDate = dtpDocDate.Value; DocumentSAP.DocDueDate = dtpDocDueDate.Value; DocumentSAP.DocType = "dDocument_Items"; DocumentSAP.DocCurrency = txtMoneda.Text; if (!string.IsNullOrEmpty(txtNumAtCard.Text)) { DocumentSAP.NumAtCard = txtNumAtCard.Text; } if (!string.IsNullOrEmpty(txtComments.Text)) { DocumentSAP.Comments = txtComments.Text; } DocumentSAP.DocTotal = Convert.ToDouble(txtTotal.Text); DocumentSAP.VatSum = Convert.ToDouble(txtIVA.Text); #endregion foreach (var item in dgvDatos.Rows) { #region Detalles SDK_SAP.Clases.DocumentLines line = new SDK_SAP.Clases.DocumentLines(); line.ItemCode = Convert.ToString(item.Cells["ItemCode"].Value); line.ItemDescription = Convert.ToString(item.Cells["ItemName"].Value); line.Quantity = Convert.ToDouble(item.Cells["Quantity"].Value); line.Currency = Convert.ToString(item.Cells["Currency"].Value); line.WarehouseCode = Convert.ToString(item.Cells["WhsCode"].Value); if (item.Cells["ShipDate"].Value != DBNull.Value) { line.ShipDate = Convert.ToDateTime(item.Cells["ShipDate"].Value); } line.U_Comentario = Convert.ToString(item.Cells["U_Comentario"].Value); line.U_Vendedor = Convert.ToString(item.Cells["U_Vendedor"].Value); line.Price = Convert.ToDouble(item.Cells["Price"].Value); line.Rate = Convert.ToDouble(item.Cells["Rate"].Value); line.LineTotal = Convert.ToDouble(item.Cells["LineTotal"].Value); if (item.Cells["OnHand"].Value != DBNull.Value) { line.OnHand = Convert.ToDouble(item.Cells["OnHand"].Value); } if (item.Cells["Ideal"].Value != DBNull.Value) { line.Ideal = Convert.ToDouble(item.Cells["Ideal"].Value); } if (item.Cells["VI"].Value != DBNull.Value) { line.VI = Convert.ToDouble(item.Cells["VI"].Value); } if (item.Cells["ABC"].Value != DBNull.Value) { line.ABC = Convert.ToString(item.Cells["ABC"].Value); } DocumentSAP.Lines.Add(line); #endregion } if (!txtStatus.Text.Equals("Autorizado")) { #region Borrador DocumentSAP.DocType = ObjType.ToString(); txtFolio.Text = DocumentSAP.SaveDraft(DocumentSAP).ToString(); DocumentSAP = DocumentSAP.Fill_OPOR(DocumentSAP.DocNum, ObjType, "Borrador"); txtFolio.Text = DocumentSAP.DocNum.ToString(); if (DocumentSAP.DocStatus.Equals("P")) { txtStatus.Text = "Pendiente"; } else if (DocumentSAP.DocStatus.Equals("R")) { txtStatus.Text = "Rechazado"; } else if (DocumentSAP.DocStatus.Equals("A")) { txtStatus.Text = "Autorizado"; } typeDocument = "Borrador"; var kea = new KeyPressEventArgs(Convert.ToChar(13)); this.txtFolio_KeyPress(sender, kea); this.SetMensaje("Listo", 5000, Color.Green, Color.Black); #endregion } if (txtStatus.Text.Equals("Autorizado")) { SDK.SDKDatos.SDK_DI sdk = new SDKDatos.SDK_DI(1);//--Orden de compra 1 sdk.CrearOrdenCompra(this).ToString(); this.SetMensaje("Listo", 5000, Color.Green, Color.Black); Object[] valuesOut = new Object[] { }; Datos.Connection connection = new Datos.Connection(); connection.Ejecutar("LOG", "sp_SDKDocumentosPrevios_test", new string[] { }, new string[] { "@TipoConsulta", "@ObjType", "@DocNum", "@DocNumSAP" }, ref valuesOut, 17, ObjType, DocumentSAP.DocNum, txtFolio.Text); /* #region SAP * SDK_SAP.DI.Connection.InitializeConnection(9); * SDK_SAP.DI.Connection.StartConnection(); * SDK_SAP.DI.Documents doc = new SDK_SAP.DI.Documents(9); * * txtFolio.Text = doc.AddDocument("ORDN", Document).ToString(); * * var kea = new KeyPressEventArgs(Convert.ToChar(13)); * this.txtFolio_KeyPress(sender, kea); * * SDK_SAP.DI.Connection.CloseConnection(); * this.SetMensaje("Listo", 5000, Color.Green, Color.Black); * DocumentMode = "Creado"; * * Object[] valuesOut = new Object[] { }; * Datos.Connection connection = new Datos.Connection(); * * connection.Ejecutar("LOG", * "sp_SDKDocumentosPrevios", * new string[] { }, * new string[] { "@TipoConsulta", "@ObjType", "@DocNum", "@DocNumSAP" }, * ref valuesOut, 17, ObjType, Document.DocNum, txtFolio.Text); #endregion */ } } catch (Exception ex) { this.SetMensaje(ex.Message, 5000, Color.Red, Color.White); } finally { Cursor.Current = Cursors.Arrow; } #endregion #endregion } if (btnCrear.Text == "Actualizar") { #region Modificar try { Cursor.Current = Cursors.WaitCursor; if (IdDocument == (int)SDK.Configuracion.SDK_Configuracion_Document.DocumentType.OrdenCompra) { SDK.SDKDatos.SDK_DI sdk = new SDKDatos.SDK_DI(1);//Orden de compra sdk.ActualizarDocumento(this, DocumentSAP).ToString(); this.SetMensaje("OC Actualizada correctamente", 5000, Color.Green, Color.Black); } } catch (Exception ex) { this.SetMensaje(ex.Message, 5000, Color.Red, Color.White); } finally { Cursor.Current = Cursors.Arrow; } #endregion } if (btnCrear.Text == "Autorizar") { #region Autorizar using (SqlConnection connection1 = new SqlConnection(Datos.Clases.Constantes.conectionLog)) { connection1.Open(); SqlCommand command = new SqlCommand(); command.CommandText = "sp_SDKDocumentosPrevios"; command.Connection = connection1; command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@TipoConsulta", 16); command.Parameters.AddWithValue("@DocNum", DocKey); command.Parameters.AddWithValue("@Comments", txtComments.Text); command.Parameters.AddWithValue("@WddCode", WddCode); command.Parameters.AddWithValue("@userID", ClasesSGUV.Login.Id_Usuario); try { command.ExecuteNonQuery(); connection1.Close(); MessageBox.Show("Listo", "HalcoNET", MessageBoxButtons.OK, MessageBoxIcon.Information); this.SetMensaje("Listo", 5000, Color.Green, Color.Black); DocumentSAP = DocumentSAP.Fill_OPOR(Convert.ToDecimal(txtFolio.Text), 22, "Borrador"); txtFolio.Text = DocumentSAP.DocNum.ToString(); if (DocumentSAP.DocStatus.Equals("P")) { txtStatus.Text = "Pendiente"; } else if (DocumentSAP.DocStatus.Equals("R")) { txtStatus.Text = "Rechazado"; } else if (DocumentSAP.DocStatus.Equals("A")) { txtStatus.Text = "Autorizado"; } this.SetMensaje("Listo", 5000, Color.Green, Color.Black); btnCrear.Enabled = false; } catch (Exception ex) { this.SetMensaje(ex.Message, 5000, Color.Red, Color.White); } } #endregion } }
private void btnCrear_Click(object sender, EventArgs e) { if (btnCrear.Text == "Crear") { if (string.IsNullOrEmpty(txtMoneda.Text)) { this.SetMensaje("Campo MONEDA obligatorio", 5000, Color.Red, Color.White); return; } #region Crear try { Cursor.Current = Cursors.WaitCursor; SDK_SAP.Clases.Document document = new SDK_SAP.Clases.Document(); document.DocType = "dDocument_Items"; document.Comments = txtComments.Text; document.CardCode = txtCardCode.Text; document.DocDate = dtpDocDate.Value; document.Series = 13; document.DocCurrency = txtMoneda.Text; document.DocRate = txtMoneda.Text == "USD" ? Convert.ToDouble(txtTC.Text) : (double)1; foreach (var item in dgvDatos.Rows) { SDK_SAP.Clases.DocumentLines line = new SDK_SAP.Clases.DocumentLines(); line.ItemCode = Convert.ToString(item.Cells["ItemCode"].Value); line.ItemDescription = Convert.ToString(item.Cells["ItemName"].Value); line.Quantity = Convert.ToDouble(item.Cells["Quantity"].Value); line.Facturado = Convert.ToDouble(item.Cells["FacturadoQty"].Value); line.Currency = Convert.ToString(item.Cells["Currency"].Value); line.WarehouseCode = Convert.ToString(item.Cells["WhsCode"].Value); line.Price = Convert.ToDouble(item.Cells["Price"].Value); line.U_Comentario = Convert.ToString(item.Cells["U_Comentario"].Value); line.ManBtchNum = Convert.ToString(item.Cells["ManBtchNum"].Value); line.BaseEntry = (int?)(item.Cells["BaseEntry"].Value != DBNull.Value ? item.Cells["BaseEntry"].Value : null); line.BaseLine = (int?)(item.Cells["BaseLine"].Value != DBNull.Value ? item.Cells["BaseLine"].Value : null); line.BaseType = (int?)(item.Cells["BaseType"].Value != DBNull.Value ? item.Cells["BaseType"].Value : null); document.Lines.Add(line); } #region Lotes bool viewLotes = false; bool finalizar = true; bool LotesOk = true; //do //{ viewLotes = false; finalizar = true; foreach (var item in document.Lines) { if (item.ManBtchNum.Equals("Y")) { if (item.Quantity != item.LotesList.Sum(lote_item => lote_item.Cantidad)) { viewLotes = true; } foreach (var lote in item.LotesList) { if (!string.IsNullOrEmpty(lote.Pedimento)) { viewLotes = true; } if (!string.IsNullOrEmpty(lote.Aduana)) { viewLotes = true; } } } } if (viewLotes) { frmLotes form = new frmLotes(document, tbl_Lotes); if (form.ShowDialog() == System.Windows.Forms.DialogResult.Cancel) { return; } else { tbl_Lotes = form.Tbl_lotes; } } foreach (var item in document.Lines) { if (item.ManBtchNum.Equals("Y")) { if (item.Facturado != item.LotesList.Sum(lote_item => lote_item.Cantidad)) { finalizar = false; } } } foreach (var item in document.Lines) { if (item.ManBtchNum.Equals("Y")) { foreach (var lote in item.LotesList) { if (string.IsNullOrEmpty(lote.Pedimento)) { LotesOk = false; } if (string.IsNullOrEmpty(lote.Aduana)) { LotesOk = false; } } } } //} //while (!finalizar); if (!LotesOk) { this.SetMensaje("Falta ingresar informacion Aduana|Pedimento", 5000, Color.Red, Color.White); return; } #endregion if (finalizar) { SDK_SAP.DI.Documents doc = new SDK_SAP.DI.Documents(10008); SDK_SAP.DI.Connection.InitializeConnection(10008); SDK_SAP.DI.Connection.StartConnection(); txtFolio.Text = doc.AddDocument("OPDN", document).ToString(); SDK_SAP.DI.Connection.CloseConnection(); this.SetMensaje("Listo", 5000, Color.Green, Color.Black); DocumentMode = "Creado"; } } catch (Exception ex) { this.SetMensaje(ex.Message, 5000, Color.Red, Color.White); } finally { Cursor.Current = Cursors.Arrow; } #endregion this.Formulario_Modo(); } if (btnCrear.Text == "Actualizar") { } }
private void btnEntrega_Click(object sender, EventArgs e) { try { btnConsultar.Focus(); SDK_SAP.Clases.Document doc = new SDK_SAP.Clases.Document(); DataTable tbl_Datos = new DataTable(); tbl_Datos = dgvDatos.DataSource as DataTable; doc.DocType = "dDocument_Items"; doc.DocDate = DateTime.Now; doc.CardCode = Convert.ToString(tbl_Datos.Rows[0]["CardCode"]); doc.DocCurrency = Convert.ToString(tbl_Datos.Rows[0]["DocCur"]); doc.U_Cuenta = Convert.ToString(tbl_Datos.Rows[0]["U_Cuenta"]); doc.U_MPAGO2 = Convert.ToString(tbl_Datos.Rows[0]["U_MPAGO2"]); doc.U_TipoOV = Convert.ToString(tbl_Datos.Rows[0]["U_TipoOV"]); doc.U_Titular = Convert.ToString(tbl_Datos.Rows[0]["U_Titular"]); doc.U_TPedido = Convert.ToString(tbl_Datos.Rows[0]["U_TPedido"]); doc.U_OC = Convert.ToString(tbl_Datos.Rows[0]["U_OC"]); doc.Series = Convert.ToInt32(tbl_Datos.Rows[0]["Series"]); /* * doc.U_LugarExp = Convert.ToString(tbl_Heder.Rows[0]["LugarExp"]); * doc.FE_Calle = Convert.ToString(tbl_Heder.Rows[0]["Calle"]); * doc.FE_NoExt = Convert.ToString(tbl_Heder.Rows[0]["NoExt"]); * doc.FE_NoInt = Convert.ToString(tbl_Heder.Rows[0]["NoInt"]); * doc.FE_Colonia = Convert.ToString(tbl_Heder.Rows[0]["Colonia"]); * doc.FE_Municipio = Convert.ToString(tbl_Heder.Rows[0]["Municipio"]); * doc.FE_Estado = Convert.ToString(tbl_Heder.Rows[0]["Estado"]); * doc.FE_Pais = "México"; * doc.FE_CP = Convert.ToString(tbl_Heder.Rows[0]["CP"]); */ foreach (DataRow item in tbl_Datos.Rows) { if (Convert.ToBoolean(item["Seleccionar"])) { SDK_SAP.Clases.DocumentLines lineDoc = new SDK_SAP.Clases.DocumentLines(); lineDoc.ItemCode = Convert.ToString(item["ItemCode"]); lineDoc.Quantity = Convert.ToDouble(item["Surtido"]); lineDoc.Currency = Convert.ToString(item["Currency"]); lineDoc.WarehouseCode = Convert.ToString(item["WhsCode"]); lineDoc.Price = Convert.ToDouble(item["Price"]); lineDoc.MeasureUnit = Convert.ToString(item["SalUnitMsr"]); if (item["U_PReal"] != DBNull.Value) { lineDoc.U_PReal = Convert.ToDouble(item["U_PReal"]); } if (item["U_Comentario"] != DBNull.Value) { lineDoc.U_Comentario = Convert.ToString(item["U_Comentario"]); } lineDoc.ManBtchNum = Convert.ToString(item["ManBtchNum"]); SDK_SAP.Clases.Lotes lote = new SDK_SAP.Clases.Lotes(); if (lineDoc.ManBtchNum.Equals("Y")) { DataTable tbl_Lot = lote.getLotes(lineDoc.ItemCode, lineDoc.WarehouseCode, lineDoc.Quantity); foreach (DataRow itemLote in tbl_Lot.Rows) { SDK_SAP.Clases.Lotes oLot = new SDK_SAP.Clases.Lotes(); oLot.Lote = itemLote.Field <string>("BatchNum"); oLot.Cantidad = (double)itemLote.Field <decimal>("Quantity"); lineDoc.LotesList.Add(oLot); } } lineDoc.BaseEntry = Convert.ToInt32(item["DocEntry"]); lineDoc.BaseLine = Convert.ToInt32(item["LineNum"]); lineDoc.BaseType = Convert.ToInt32(tbl_Datos.Rows[0]["ObjType"]); doc.Lines.Add(lineDoc); } } SDK_SAP.DI.Documents diAPI_Document = new SDK_SAP.DI.Documents(20011); decimal FolioSap = diAPI_Document.AddDocument("ODLN", doc); this.SetMensaje("Listo! Folio: " + FolioSap, 5000, Color.Green, Color.Black); this.OnLoad(e); } catch (Exception ex) { this.SetMensaje(ex.Message, 5000, Color.Red, Color.White); } }